mr_*_*r_c 10 django django-csrf
作为cookie的初学者,CSRF和Django(使用1.4),从我可以看出它是如何工作的,请纠正我出错的地方......
以下适用于MIDDLEWARE_CLASSES元组中包含django.middleware.csrf.CsrfViewMiddleware的情况.
如果POST表单包含csrf_token标记,并且相关视图传递RequestContext给模板,请求页面意味着Django包含一个包含字母数字字符串的隐藏表单字段.Django还会向浏览器返回一个名称设置为的cookie,csrftoken并将值设置为相同的字母数字字符串.
收到表单提交时,Django会检查隐藏表单字段中的字母数字字符串值是否匹配以及从浏览器收到的csrftoken cookie.如果它们不匹配则发出403响应.
CSRF攻击可能以包含iframe的恶意网站的形式出现.iframe包含POST表单和一些JavaScript.表单的action属性指向我的Django站点.该表单旨在在我的站点上做一些讨厌的事情,并且在加载iframe时JS提交表单.
浏览器将csrftoken在表单提交的标题中包含cookie.但是,表单不会包含带有匹配的字母数字字符串的隐藏字段,因此返回403并且攻击失败.如果iframe JS试图访问cookie,以便创建正确的hiddden表单字段,浏览器将阻止它这样做.
它是否正确?
| 归档时间: |
|
| 查看次数: |
3084 次 |
| 最近记录: |