Laravel 提供简易的方法,让您可以保护您的应用程序不受到 CSRF (跨网站请求伪造) 攻击。跨网站请求伪造是一种恶意的攻击,借以代表经过身份验证的用户执行未经授权的命令。
Laravel 会自动在每一位用户的 session 中放置随机的 token ,这个 token 将被用来确保经过验证的用户是实际发出请求至

1、插入 CSRF Token 到表单

 <input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">
当然也可以在 Blade 模板引擎这样写:
 <input type="hidden" name="_token" value="{{ csrf_token() }}">
以上代码也可以使用以下代码代替:
{{csrf_field()}}

您不需要手动验证在 POST、PUT、DELETE 请求的 CSRF token。 VerifyCsrfToken HTTP 中间件将保存在 session 中的请求输入的 token 配对来验证 token 。

2、X-CSRF-TOKEN请求头

除了寻找 CSRF token 作为「POST」参数,中间件也检查 X-XSRF-TOKEN 请求头,比如,你可以把 token 存放在 meta 标签中, 然后使用 jQuery 将它加入到所有的请求头中:

<meta name="csrf-token" content="{{ csrf_token() }}" />

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});

现在所有的 AJAX 请求会自动加入 CSRF token:

 $.ajax({
  url: "/foo/bar",
})
另外一种写法
$.ajax({
    method:"post",
    url: "your url",
    data: {
    "_token":"{{csrf_token()}}";,
    "name":field,
    "values":values,
    "ids":ids
},
    async:false,
    success: function (data) {
        if(data.status==true){
            alert("success");
        }else{
            alert("fail");        }
    }
});
最后编辑:2017年04月04日 ©著作权归作者所有

发表评论