Django的ModSecurity错误

时间:2011-05-12 08:15:34

标签: python django facebook dreamhost mod-security

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

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

  

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

我认为这只与POST请求有关。大约一年前,有人在一些论坛上询问过这个错误,但无济于事:

ModSecurity: Output filter: Failed to read bucket (rc 104): Connection reset by peer

所有我能找到的搜索都在http://www.modsecurity.org

  

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

有什么想法吗?谢谢!

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

所以我花了太多时间试图解决这个问题。我已经确定了一个(略显蹩脚)的解决方法:将{% csrf_token %}添加到模板中的任何位置(我假设您已将context_instance=RequestContext(request)参数传递给render_to_response或其他任何地方)。

我认为正在发生的事情是cookie实际上并未设置(这可以通过检查任何浏览器的开发工具中的cookie来确认)。将上述代码添加到模板会强制执行此操作。我有一种感觉,这可能会在Django的更高版本中得到纠正,似乎有明显的1.4+修复(例如,见here)。不幸的是,dreamhost用1.2.3阻止了我们,所以我们需要做。