Microsoft Edge和IE11的CSRF问题

CSRF issue with Microsoft Edge and IE11

本文关键字:CSRF 问题 IE11 Edge Microsoft      更新时间:2023-09-26

我有一个CSRF令牌问题,只发生在MS Edge和IE11中-它在Chrome, Firefox甚至IE9中都能正常工作。

这个问题只发生在通过Ajax做Http post时。它给了我Http403禁止错误。

我在Django中遵循了下面的指南:https://docs.djangoproject.com/en/1.7/ref/contrib/csrf/

我需要为IE11/MS Edge添加一些额外的标题吗?还有其他人遇到过这个问题吗?

2小时后,我自己找到了答案…

对于那些可能在Microsoft Edge和IE11中遇到同样问题的人,修复方法在于设置CSRF_COOKIE_DOMAIN。

我试着这样设置:

CSRF_COOKIE_DOMAIN = "subdomain.domain.com"

然而,这不起作用,即使它是一个子域名网站。像这样设置它就像一个魅力:

CSRF_COOKIE_DOMAIN = ".domain.com"