Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 拉威尔CSRF刮削_Php_Laravel_Session_Csrf_Csrf Protection - Fatal编程技术网

Php 拉威尔CSRF刮削

Php 拉威尔CSRF刮削,php,laravel,session,csrf,csrf-protection,Php,Laravel,Session,Csrf,Csrf Protection,我只是想知道laravel CSRF保护到底增加了多少 如果我在这里错了,请纠正我的错误,但是一旦你获得了一次会话,你就不能只刮一刮页面的内容吗 Laravel获取耦合到会话的CSRF令牌,并将其作为AJAX请求的元标记添加到页面中 <meta name="csrf-token" content="{{ csrf_token() }}"> 当然,如果您不需要AJAX功能,您可以删除metatag,但假设您不需要 一旦您准备好了一个会话,CSRF将在会话中保持不变。当然,这对某

我只是想知道laravel CSRF保护到底增加了多少

如果我在这里错了,请纠正我的错误,但是一旦你获得了一次会话,你就不能只刮一刮页面的内容吗

Laravel获取耦合到会话的CSRF令牌,并将其作为AJAX请求的元标记添加到页面中

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

当然,如果您不需要AJAX功能,您可以删除metatag,但假设您不需要

一旦您准备好了一个会话,CSRF将在会话中保持不变。当然,这对某些人来说是一个很大的工作,但这不是一个CSRF令牌的可行解决方案吗?我想,设置一层保护层仍然有助于防止极其容易的
复制/粘贴
CSRF攻击

只是好奇,希望有人能对此进行扩展

编辑:

我知道CSRF是如何工作的,人们把Laravel如何处理CSRF和他们期望它如何工作混淆了。人们希望每个请求都能重新生成CSRF令牌,但Laravel的情况并非如此:

顺便说一下,如果不为多个请求存储CSRF令牌,我也不知道如何验证AJAX CSRF请求

Nevermind找到了答案:


这深入解释了为什么为每个请求生成CSRF令牌是个坏主意。

您在这里提出了一个好想法。但是关于这个问题的答案

即使有人删除并提取csrf令牌,他也需要另一个http请求,作为回报,该请求将创建另一个令牌。所以所有的努力都是徒劳的


注意:我把它放在了回答部分,因为我没有足够的声誉把它放在评论中。谢谢

“一旦您准备好了一个会话,CSRF将在会话中保持不变。”不,对于每个请求,它都会被验证然后重新生成,它从来都不是常量-或者至少,它不应该在整个会话中保持不变,可能与我知道的CSRF令牌的工作原理相同,但在Laravel中,CSRF令牌在每个会话中生成一次。您可以清楚地看到这里插入的CSRF令牌:在您需要添加额外安全性的系统的某些部分中,考虑使用这一点是不正确的,因为如果CSRF令牌将在每次请求上改变,那么您甚至不能再为Ajax请求重用CSRF令牌。因为那将是第二个请求。假设您甚至执行多个AJAX请求,这是不可能的。您可以清楚地看到,在Laravel中,每个会话都会生成一次CSRF令牌。因此,您的观点是,如果我通过报废获得令牌,我可以使用相同的令牌发出另一个请求,并使用我想要的任何东西。对吧???这就是拉威尔设置的是的。我想Symfony也是如此。不过,CSRF令牌对于每个用户来说仍然是唯一的,并且确实需要一个活动会话。当然,它总是在安全性和灵活性之间进行权衡。