在laravel documentation中,对于基于ajax的应用程序,可以通过HTML meta tag和cheking请求提供CSRF保护。
为什么需要这种方法,为什么不像往常一样检查ajax请求?我的意思是,如果ajax使用POST方法,那么发送CSRF令牌作为通常的参数(例如csrf_token),然后在服务器端签入(PHP):
if ( !isset($_POST['csrf_token']) OR $_POST['csrf_token'] !== $_SESSION['csrf_token'] ) {
    // incorrect csrf token, stop processing
}Cheking请求比这个方法有一些优势吗?
发布于 2018-08-19 09:09:45
如果你正在做POST请求,CSRF不会通过报头,它会通过http消息体,Laravel提供了某种用于csrf保护的默认中间件,这里面有什么问题?如果您进入assets/js文件夹,您可以在bootstrap.js中看到CSRF令牌。
您可以从全局Javascript变量中获取CSRF令牌,并通过ajax post请求主体发送它。
https://stackoverflow.com/questions/51910059
复制相似问题