【发布时间】:2014-05-17 14:41:45
【问题描述】:
编辑:我应该在一开始就这么说,我在 FronEnd 中使用 AngularJS,我通过 XHR 发出所有请求。
我正在为每个用户请求使用CSRF Token 开发一个应用程序。
我应该在每次请求后重新生成Token 吗?
有点像
Session::forget("_token") and Session::put("_token", RANDOM_SOMETHING)
或者每个用户使用同一个Session就足够了吗?
有什么好处吗?
【问题讨论】:
-
你使用令牌做什么?假设您将它用于防止 XSS 以外的其他用途,很难说它对于您的场景是否足够“好”。
-
@itachi Laravel 的 CSRF 令牌用于防止跨站点请求(通常是 XSS)。它是保存到网站会话中的令牌,并在每次提交表单时发送,因此必须从带有会话的网站提交表单才能获得正确的会话......而不是使用跨站点脚本伪造请求。
-
@Sam 是的。但是 CSRF 和 XSS 是两个非常不同的方面。拥有令牌会在 csrf 中帮助您,但在 xss 中没有。
-
@itachi 很公平,感谢您指出这一点。我的解释很不标准,但是(在我看来)这一点仍然存在,我们需要知道 OP 使用 CSRF 令牌来保护他的应用程序的意图。