【问题标题】:Is the {% csrf_token %} CSRF protection tag still necessary in Django 1.2?Django 1.2 中仍然需要 {% csrf_token %} CSRF 保护标签吗?
【发布时间】:2010-12-01 21:42:20
【问题描述】:

我正在我的网站上测试 CSRF 保护,我发现了一些意外情况。

我从表单中删除了{% csrf_token %},提交仍然有效。我不知道为什么。然后我查看了源代码并意识到令牌仍然在<form> 元素旁边。我更改了表单的 ID,以确保它确实在更新源,但隐藏的输入仍然存在。

我正在使用 Django 1.2。 {% csrf_token %} 还需要吗?

干杯

丰富

【问题讨论】:

  • 经过更多调查,如果表单具有“post”方法,则始终插入 {% csrf_token %},如果没有,则不会插入。非常聪明的姜戈。自动保护。
  • 将其作为答案发布并接受(您可能需要等待 24 小时才能接受自己的答案)。

标签: django csrf


【解决方案1】:

经过更多调查,如果表单有方法post,则似乎总是插入{% csrf_token %},如果没有,则不会。来自 Django 的非常聪明的自动保护。

【讨论】:

【解决方案2】:

来自文档:

在 Django 1.1 中,模板标签不存在。相反,使用了重新编写 POST 表单以包含 CSRF 令牌的后处理中间件。如果您要从 1.1 或更早版本升级站点,请阅读本节和下面的 Upgrading notes

http://docs.djangoproject.com/en/dev/ref/contrib/csrf/#legacy-method

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-17
    • 1970-01-01
    • 2020-09-02
    • 2011-02-28
    • 2018-10-23
    • 2015-02-24
    • 2015-09-06
    • 2020-01-29
    相关资源
    最近更新 更多