使用远程身份验证的服务器上的 CSRF 失败(清除 cookie 时有效)

CSRF failure on server using Remote Authentication (works when cookie is cleared)

我正在使用 Django 的 RemoteUserMiddleware 对一个网站中的用户进行身份验证。它工作得很好,直到第二天。当我尝试使用 POST 方法做任何事情时(即使在 Django 的管理页面中)它给我一个 403 错误。

我清除了 cookie,它又开始工作了。

我的浏览器和服务器之间有一个防火墙,它将 headers 发送到服务器(因此 Django 可以知道谁登录了)。

Django 版本:1.9.6 我在我的服务器中使用 NGINX

当错误发生时,django 每次都会更改 csrftoken。似乎在未清除缓存时获得匿名用户...

想知道是什么导致了这种奇怪的行为吗?

这是因为系统注入了一个无效的 cookie。每当有无效的 cookie 时,Django 都不能很好地处理......它会擦除元标记中的一些键(检查 cookie 的地方)