Php X-XSRF-TOKEN和X-CSRF-TOKEN之间有什么区别?

Php X-XSRF-TOKEN和X-CSRF-TOKEN之间有什么区别?,php,security,laravel-5.2,csrf,Php,Security,Laravel 5.2,Csrf,何时使用隐藏字段以及何时使用标题以及原因? X-XSRF_令牌何时使用? X-CSRF令牌当我们使用时?当您使用ajax提交数据时,您需要CSRF令牌的标题,因为ajax不会将令牌与数据一起发送 您可以使用以下代码为ajax请求使用隐藏字段 $.ajaxSetup( { headers: { 'X-CSRF-Token': $('input[name="_token"]').val() } }); 但您必须为每个ajax请求添加隐藏字段 X-CSRF-T

何时使用隐藏字段以及何时使用标题以及原因?
X-XSRF_令牌
何时使用?

X-CSRF令牌
当我们使用时?

当您使用ajax提交数据时,您需要CSRF令牌的标题,因为ajax不会将令牌与数据一起发送

您可以使用以下代码为ajax请求使用隐藏字段

$.ajaxSetup(
{
    headers:
    {
        'X-CSRF-Token': $('input[name="_token"]').val()
    }
});
但您必须为每个ajax请求添加隐藏字段

X-CSRF-TOKEN和X-XSRF-TOKEN之间的区别在于,前者使用纯文本值,后者使用加密值,因为Laravel中的Cookie总是加密的。如果使用csrf_token()函数提供令牌值,则可能需要使用X-csrf-token头


它已在laravel 5.2文档中删除,但您可以在laravel 5.0文档中找到它,链接是

所有链接都用于跨站点请求伪造保护,并且在向后端发送请求时只需使用其中一个链接。不同的名称来自不同的框架

这一切都是关于向后端发送
csrf值的。然后后端将它与存储在数据库中的特定用户的csrf值进行比较,如果匹配,它将允许处理请求

csrf:

  • 在html表单中使用(不是ajax)
  • 在呈现html表单时在后端生成
  • 我们不能直接在html表单中设置请求头,所以一种简单的方法是通过表单输入将其作为隐藏字段发送

  • 您可以随意命名此隐藏输入。e、 g.
    值得一提的是,Laravel CSRF中间件(
    \App\Http\middleware\VerifyCsrfToken
    )仅为
    web
    应用程序启用。如果您将laravel用作
    api
    (REST api),laravel将不会像您在
    App\Http\Kernel
    类中看到的那样运行此中间件。