【发布时间】:2014-10-19 21:05:29
【问题描述】:
我有一个关于 Django CsrfViewMiddleware 机制的问题。 我知道,那个 Django:
- 为每个请求设置新的 csrftoken cookie。
- 检查,X-CSRFToken 标头值(或隐藏输入“csrfmiddlewaretoken”)必须等于 csrftoken cookie。
但 Django 不会检查令牌是否已经被使用(来自 CsrfViewMiddleware 的示例):
if not constant_time_compare(request_csrf_token, csrf_token):
return self._reject(request, REASON_BAD_TOKEN)
所以我可以使用相同的令牌发布多个请求(我在我的服务器上进行了测试)。
这是标准行为,还是我的 Django 设置不正确? 谢谢。
【问题讨论】:
-
标准。令牌不会被消耗,而只会在每次登录时刷新。
-
知道了。 Germano,谢谢你的回答!
标签: python django django-csrf csrf-protection