首页 > 解决方案 > Django 在 url 中显示 csrf 中间件令牌是否安全?

问题描述

在发出 GET 请求时,我注意到我的 csrf 令牌被附加到我的 url。这安全吗?

标签: djangocsrf

解决方案


Django 不检查 GET 请求的 CSRF 令牌。如果您有任何带有 的表格method="get",则应删除该{% csrf_token %}标签。

当您这样做时,请仔细检查 GET 请求是否没有副作用(即它们不会更改任何数据)。如果不是,则保留 CSRF 令牌并更改视图/表单以使用 POST 请求。

如果 CSRF 令牌包含在 URL 中,那么它可能存储在某处,例如服务器日志。如果攻击者获得了令牌,那么他们可以使用它来绕过 Django 的 CSRF 保护。

有关更多信息,请参阅Django CSRF 文档


推荐阅读