1

我正在尝试通过我在 DreamHost 上使用 fb.py 制作的 Facebook 应用程序(iframe)访问 Django 页面,但我不断收到内部服务器错误。

查看错误日志,这是我看到的:

ModSecurity:输出过滤器:无法读取存储桶(rc 104):对等方重置连接

我认为它只是与 POST 请求有关。大约一年前,其他人在许多论坛上询问了此错误,但无济于事:

ModSecurity:输出过滤器:无法读取存储桶(rc 104):对等方重置连接

我能在http://www.modsecurity.org上找到的搜索是:

“当 mod_security 拒绝这样的请求时,它会在输出过滤器链中发送一个错误桶,例如代码 403,使 r->status 保持原样(例如 500)。”

有任何想法吗?谢谢!

4

2 回答 2

0

所以我花了太多时间试图弄清楚这一点。我已经确定了一个(有点糟糕的)解决方法:添加{% csrf_token %}到模板中的任何位置(我假设你将context_instance=RequestContext(request)参数传递给你的render_to_response或其他的)。

我认为正在发生的事情是 cookie 实际上没有设置(这可以通过检查任何浏览器的开发工具中的 cookie 来确认)。将上述代码添加到您的模板会强制执行此操作。我有一种感觉,这可能会在更高版本的 Django 中得到解决,而且似乎对 1.4+ 有明显的修复(例如,请参见此处)。不幸的是,dreamhost 让我们坚持使用 1.2.3,所以我们需要凑合着做。

于 2012-04-02T03:56:58.053 回答
0

您是否按照https://docs.djangoproject.com/en/dev/ref/contrib/csrf/#ajax实施了 CSRF 保护?

请注意与您使用的 Django 版本进行交叉检查。

于 2011-07-21T17:39:58.470 回答