【问题标题】:CSRF for domain alias域别名的 CSRF
【发布时间】:2011-12-07 07:44:50
【问题描述】:

我有一个可以在两个不同的域下访问的网站,比如a.x.comb.x.com,或者a.coma.org(通过简单的ServerAlias 在apache 中完成)。

CSRF 令牌只能设置为其中一个域(比如说a.x.com),所以当访问b.x.com 时,我总是得到 403:CSRF 验证失败。

在存在 CSRF 令牌的情况下处理域别名的正确方法是什么?

【问题讨论】:

    标签: csrf django-csrf


    【解决方案1】:

    你有没有看过在 settings.py 中设置CSRF_COOKIE_DOMAIN? Django 文档在这里:https://docs.djangoproject.com/en/dev/ref/contrib/csrf/#csrf-cookie-domain

    将其设置为“.x.com”,两个子域的 CSRF cookie 都可以使用。

    【讨论】:

    • 这只适用于子域,对吧? x.comx.org 的更常见示例怎么样?作为两者的所有者,django 表达两者之间信任的方式是什么?
    • 是的,它仅适用于子域,但它应该是您对上述问题所需要的。至于跨域,你不能用 cookie 做到这一点(你只能为你所在的域设置一个 cookie),所以 CSRF 不起作用 - 你必须想出自己的方法所以。
    猜你喜欢
    • 2011-04-27
    • 2013-03-08
    • 2018-01-07
    • 2012-03-24
    • 2016-04-19
    • 2018-08-23
    • 2015-03-03
    • 2017-06-26
    • 1970-01-01
    相关资源
    最近更新 更多