5

阅读后:http ://docs.djangoproject.com/en/dev/ref/contrib/csrf/#how-to-use-it

我得出的结论是,除非您信任使用它的页面的人,否则使用它是无效的。它是否正确?

我想我真的不明白什么时候可以安全使用它,因为这个声明:

对于以外部 URL 为目标的 POST 表单,不应这样做,因为这会导致 CSRF 令牌泄露,从而导致漏洞。

令人困惑的原因是;对我来说,“外部 URL”将是不属于我的域的页面(即,我拥有 www.example.com 并放置一个发布到 www.spamfoo.com 的表单。这显然不可能因为人们不会使用 Django 生成发布到其他人网站的表单,但是您不能在公共表单(如登录表单)上使用 CSRF 保护怎么可能是真的呢?

4

1 回答 1

0

很抱歉不了解您的困惑的具体来源,我会说您应该问的问题是何时不使用 CSRF 保护。您已经从文档中调用了这个案例:

对于以外部 URL 为目标的 POST 表单,不应这样做,因为这会导致 CSRF 令牌泄露,从而导致漏洞。

如果您将表单发布到您的域,您将希望默认启用 CSRF 保护,除非您有特定原因禁用它(这应该比没有的情况更罕见)。

于 2010-03-12T01:44:48.027 回答