Php 针对ajax请求的CSRF保护

Php 针对ajax请求的CSRF保护,php,ajax,csrf-protection,Php,Ajax,Csrf Protection,在中,对于基于ajax的应用程序,有通过HTML元标记和检查头请求的CSRF保护 为什么需要这种方法,为什么不像通常的请求那样检查ajax请求?我的意思是,如果ajax使用POST方法,则将CSRF令牌作为常规参数发送(例如作为CSRF\u令牌),然后签入服务器端(PHP): Cheking header request比这种方法有一些优势?如果您执行POST request,CSRF不会通过header,而是通过http消息体,Laravel拥有的是某种默认的CSRF保护中间件,问题在哪里?

在中,对于基于ajax的应用程序,有通过HTML元标记和检查头请求的CSRF保护

为什么需要这种方法,为什么不像通常的请求那样检查ajax请求?我的意思是,如果ajax使用POST方法,则将CSRF令牌作为常规参数发送(例如作为
CSRF\u令牌
),然后签入服务器端(PHP):


Cheking header request比这种方法有一些优势?

如果您执行POST request,CSRF不会通过header,而是通过http消息体,Laravel拥有的是某种默认的CSRF保护中间件,问题在哪里? 如果进入assets/js文件夹,您可以在bootstrap.js中看到CSRF令牌

您可以从全局Javascript变量获取CSRF令牌,并通过ajax post请求体发送它

if ( !isset($_POST['csrf_token']) OR $_POST['csrf_token'] !== $_SESSION['csrf_token'] ) {
    // incorrect csrf token, stop processing
}