我正在写下我对csrf protcetion机制的理解django.如果有问题,请纠正我.
在csrfViewMiddleware 创建一个隐藏字段从host.Since发起恶意网站模仿这种形式会不知道这个字段的值形式的"csrfmiddlewaretoken"一个唯一的字符串,并将其存储,它不能使用它.
当有人试图发布表单时,网站会检查' csrfmiddlewaretoken'字段及其值.如果错误或未设置,则会检测到csrf尝试.
但那么,究竟是CSRFCookie什么?该文档说明了唯一值CSRFCookie,也是在hidden field.这是我感到困惑的地方.一个cookie是否被嵌入了唯一的字符串发送到浏览器?我希望有人可以清楚地解释这一点.
谢谢,
好的,我的解释如下:
Django为经过身份验证的用户分配存储在cookie中的CSRF令牌.每次用户发出被认为"不安全"的请求(即POST,PUT,DELETE)时,都会读取此cookie中的值,以验证用户(而非恶意第三方)正在发出请求.
您放置在表单中的CSRF标记实际上从cookie中获取CSRF令牌,然后在您提交表单时将其作为POST变量传递.
希望这会让它更清晰一些.
| 归档时间: |
|
| 查看次数: |
655 次 |
| 最近记录: |