使用mod_wsgi CSRF验证的Apache上的Django失败

nk

我在Apache上有一个mod_wsgi的Django站点。最初,管理页面将返回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,它将如何改变?

所有请求/响应均来自同一服务器。感谢提供的任何帮助。

编辑:

在我的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域。因此它返回HTTP 403并记录未设置cookie。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章