Laravel CSRF刮刮

时间:2017-04-13 12:58:23

标签: php laravel session csrf csrf-protection

我只是想知道laravel CSRF保护真正增加了多少。

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

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

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

https://laravel.com/docs/5.4/csrf#csrf-x-csrf-token

当然,如果你不需要AJAX功能,你可以删除元标记,但是让我们说你不会。

一旦您准备好会话,CSRF将在会话中保持不变。当然,这对于某人设置来说需要做很多工作,但这不是CSRF令牌可能的解决方法吗?我想有一层保护措施可以防止非常容易的copy/paste CSRF攻击。

只是好奇,希望有人可以扩展这个。

修改

我知道CSRF是如何运作的,人们对Laravel如何处理CSRF以及他们期望如何工作感到困惑。人们希望每个请求都能重新生成一个CSRF令牌,但Laravel的情况并非如此:

https://github.com/illuminate/session/blob/master/Store.php#L72

如果您不顺便为多个请求存储CSRF令牌,我也不会看到如何验证AJAX CSRF请求。

Nevermind找到答案:

https://security.stackexchange.com/questions/22903/why-refresh-csrf-token-per-form-request

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

1 个答案:

答案 0 :(得分:0)

你在这里做了个好主意。但是参考了这个问题的答案。

Is it possible to break CSRF token validation using file_get_contents in PHP

即使有人废弃并提取了csrf令牌,他也需要另一个http请求,反过来又会创建另一个令牌。所以所有的努力都是徒劳的。

注意:我已将它放在答案部分,因为我没有足够的声誉将它放在评论中。感谢