Apache 上的 Django mod_wsgi CSRF 验证失败
Django on Apache with mod_wsgi CSRF Verification Failed
我在 Apache 上有一个 Django 站点 mod_wsgi。起初管理页面会 return 一个 500 错误,它在重新启动 Apache 等之后开始工作。但是现在,当我登录时,我收到了 403 消息:
CSRF verification failed. Request aborted.
You are seeing this message because this site requires a CSRF cookie when submitting forms. This cookie is required for security reasons, to ensure that your browser is not being hijacked by third parties.
If you have configured your browser to disable cookies, please re-enable them, at least for this site, or for 'same-origin' requests.
我的设置中唯一的 CSRF 选项是 CSRF_COOKIE_DOMAIN = "127.0.0.1"
CSSRF_SECURE_DOMAIN 未设置,因此默认为 False。我目前根本没有使用 https,因为该网站仍在开发中。
但我需要能够访问管理界面。
我该如何解决这个错误?在本地开发服务器上一切正常,但一旦推送到 Web 服务器,我 运行 就遇到了这些类型的问题。
那么有人对如何修复我遇到的这个 CSRF 验证错误有任何建议吗?如果我在网站上实施 SSL,有人知道它会发生什么变化吗?
所有requests/responses都来自同一台服务器。感谢提供的任何帮助。
编辑:
在我的 Django 记录器文件输出中,我得到了这一行:
[04/Nov/2015 18:13:20] WARNING [django.request:98] Forbidden (CSRF cookie not set.): /sa-admin/login/
说根本没有设置CSRF cookie。但是我使用默认的 contrib.admin 来处理所有这些,所以我对这个问题感到困惑。只有西装已添加到管理员。但这真的只是一个皮肤。
您应该从设置中删除 CSRF_COOKIE_DOMAIN = "127.0.0.1"
。
Django 正在使用您的生产域寻找 CSRF 令牌 cookie,但找不到它,因为您的应用程序根据您的设置将 127.0.0.1
设置为 cookie 域。所以它 returns HTTP 403 并记录未设置 cookie。
我在 Apache 上有一个 Django 站点 mod_wsgi。起初管理页面会 return 一个 500 错误,它在重新启动 Apache 等之后开始工作。但是现在,当我登录时,我收到了 403 消息:
CSRF verification failed. Request aborted.
You are seeing this message because this site requires a CSRF cookie when submitting forms. This cookie is required for security reasons, to ensure that your browser is not being hijacked by third parties.
If you have configured your browser to disable cookies, please re-enable them, at least for this site, or for 'same-origin' requests.
我的设置中唯一的 CSRF 选项是 CSRF_COOKIE_DOMAIN = "127.0.0.1"
CSSRF_SECURE_DOMAIN 未设置,因此默认为 False。我目前根本没有使用 https,因为该网站仍在开发中。
但我需要能够访问管理界面。
我该如何解决这个错误?在本地开发服务器上一切正常,但一旦推送到 Web 服务器,我 运行 就遇到了这些类型的问题。
那么有人对如何修复我遇到的这个 CSRF 验证错误有任何建议吗?如果我在网站上实施 SSL,有人知道它会发生什么变化吗?
所有requests/responses都来自同一台服务器。感谢提供的任何帮助。
编辑:
在我的 Django 记录器文件输出中,我得到了这一行:
[04/Nov/2015 18:13:20] WARNING [django.request:98] Forbidden (CSRF cookie not set.): /sa-admin/login/
说根本没有设置CSRF cookie。但是我使用默认的 contrib.admin 来处理所有这些,所以我对这个问题感到困惑。只有西装已添加到管理员。但这真的只是一个皮肤。
您应该从设置中删除 CSRF_COOKIE_DOMAIN = "127.0.0.1"
。
Django 正在使用您的生产域寻找 CSRF 令牌 cookie,但找不到它,因为您的应用程序根据您的设置将 127.0.0.1
设置为 cookie 域。所以它 returns HTTP 403 并记录未设置 cookie。