- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在写下我对Django中CSRF保护机制的理解。如有错误请指正。
csrfViewMiddleware
创建一个唯一的字符串并将其存储在源自主机的表单的隐藏字段'csrfmiddlewaretoken'
中。由于模仿此表单的恶意网站不会知道此字段的值,因此无法使用它。
当有人尝试 POST 表单时,网站会检查 'csrfmiddlewaretoken'
字段及其值。如果错误或未设置,则检测到csrf攻击。
那么,CSRFCookie
到底是什么? The doc说唯一值是在 CSRFCookie
和 隐藏字段
中设置的。这就是我感到困惑的地方。 cookie 是否会嵌入唯一的字符串发送到浏览器?
最佳答案
Django 为经过身份验证的用户分配一个存储在 cookie 中的 CSRF token 。每次用户发出被视为“不安全”的请求(即 POST、PUT、DELETE)时,都会读取此 cookie 中的值,以验证发出该请求的是用户(而不是恶意第三方)。
您放置在表单中的 CSRF 标记实际上从 cookie 中获取 CSRF token ,然后在您提交表单时将其作为 POST 变量传递。
关于django - 了解 Django 中的 CSRF;表单中的隐藏字段和 CSRFCookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9936585/
我正在写下我对Django中CSRF保护机制的理解。如有错误请指正。 csrfViewMiddleware 创建一个唯一的字符串并将其存储在源自主机的表单的隐藏字段'csrfmiddlewaretok
使用: Django 3.x [Django-Filters 2.2.0、graphene-django 2.8.0、graphql-relay 2.0.1] Vue 2.x [Vue-Apollo]
我是一名优秀的程序员,十分优秀!