域别名的 CSRF
我有一个可以在两个单独的域下访问的网站,例如 axcom
和 bxcom
,或 a.com
和 a.org
(通过 apache 中的简单 ServerAlias
完成)。
CSRF 令牌只能设置为其中一个域(例如 axcom
),因此在访问 bxcom
时,我总是收到 403:CSRF 验证失败。
在存在 CSRF 令牌的情况下处理域别名的正确方法是什么?
I have a web site which is accessible under two separate domains, say a.x.com
and b.x.com
, or a.com
and a.org
(accomplished via a simple ServerAlias
in apache).
The CSRF token can only be set to one of the domains (let's say a.x.com
), so when accessing b.x.com
I always get a 403: CSRF verification failed.
What is the proper way to handle domain aliases in the presence of CSRF tokens?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您是否看过在 settings.py 中设置
CSRF_COOKIE_DOMAIN
?它的 Django 文档在这里: https://docs .djangoproject.com/en/dev/ref/contrib/csrf/#csrf-cookie-domain将其设置为“.x.com”,两个子域的 CSRF cookie 都将起作用 任何一个。
Have you had a look at setting the
CSRF_COOKIE_DOMAIN
in the settings.py? Django docs for it are here: https://docs.djangoproject.com/en/dev/ref/contrib/csrf/#csrf-cookie-domainSet it to '.x.com' and CSRF cookies for both subdomains will work on either.