'request' => [
'csrf_token_on' => false, // 是否开启令牌验证
'csrf_token_name' => 'csrf_token_name', // 令牌验证的表单隐藏字段名称
'csrf_token_reset' => true, // 令牌验证出错后是否重置令牌 默认为true
'csrf_cookie_name' => 'csrf_cookie_name', // 令牌存放的cookie名称
'csrf_expire' => 86400, // 令牌过期时间,一天
'csrf_white_ips' => [ // csrf IP白名单
'127.0.0.1/24'
],
'csrf_exclude_uris' => [ // csrf URL白名单
],
]
//ajax.js
jQuery(document).ajaxSend(function(event, xhr, settings) {
function getCookie(name) {
var reg = new RegExp("(^| )" + name + "(?:=([^;]*))?(;|$)"),
val = document.cookie.match(reg);
return val ? (val[2] ? unescape(val[2]) : "") : null;
}
if (typeof xhr.setRequestHeader == "function") {
if (getCookie('csrf_cookie_name')) {
xhr.setRequestHeader('X-CSRF-TOKEN', getCookie('csrf_cookie_name'));
}
}
});
<!-- 加在form中提交 -->
<input type="text" name="_csrf" hidden value="<{form_token type="token"}>"/>
<!-- 或直接传form参数通过smarty生成一个完整的input -->
<{form_token type="form"}>
var _csrf = getCookie('csrf_cookie_name');