Django CSRF失败 - 失败的可能原因是什么?

时间:2012-02-01 19:11:40

标签: django security csrf

正确实施CSRF后,普通用户(非黑客)的CSRF失败的原因是什么?

我认为一个原因是禁用cookie时。 浏览器/计算机设置中是否还有其他可能导致验证失败的原因?

谢谢。

1 个答案:

答案 0 :(得分:2)

禁用Cookie会导致CSRF失败。唯一的另一个潜在问题是,表示cookie从发布时到表单提交时到期(可能是用户加载表单,保持浏览器窗口打开一小时或几天然后返回并提交表单)。

CSRF几乎只能使用用户通过浏览网站自然获得的标准格式。如果未在POST数据中传递CSRF令牌,或者X-CSRFToken标头未与令牌一起与请求一起发送,则AJAX请求可能会失败。如果不是从同一域发送,则通过HTTPS提交将失败。