1

我需要使用 facebook 应用程序,但我的网页返回响应 206 而不是 200,因此 facebook 应用程序返回 http 代码 500。

我用http://developers.facebook.com/tools/debug/og/object?q=http://adserver.leadhouse.net/test/test/index.php测试并返回 206 而不是 joomla.it 返回 200 时它们是相同的 curl -I 响应数据

我使用这个 perl 脚本进行了测试:http: //pastebin.com/NCDv9eTh 并且我的页面很容易受到攻击,而 joomla.it 很好。

我认为我的答案在 Facebook 调试器之间非常接近:Response 206 and Apache Webserver security and optimization Tips

但我不明白如何更改我的 apache 配置。解决方案在此页面中: www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.2 具有类似代码:

    SetEnvIf Range (,.*?){5,} bad-range=1
    RequestHeader unset Range env=bad-range

或 httpd.apache.org/docs/2.2/mod/core.html#limitrequestfieldsize

我怎样才能使它不那么容易受到我的网页的攻击?

4

2 回答 2

1

我不知道您在这里谈论的是哪种“漏洞”。

Facebook 调试器显示响应状态代码 206 是正常的 - 因为调试器尝试仅从您的 URL 请求前x (K) 字节。如果您的服务器接受此类范围请求并正确回答它们,则响应代码将为 206。

这没有漏洞_

如果这导致您的网站出现任何其他问题,请以易于理解的方式描述它们。

于 2012-06-26T15:05:11.090 回答
0

是的,一切都是从调试 facebook 开始的:对话框发送返回 500 http 代码,而我的页面返回 206 http 代码。当我测试 perl 脚本http://pastebin.com/NCDv9eTh时,我的好奇心集中在 http 代码 206 的 DoS 漏洞上

我报告了一些关于 apache 文档的重要短语:

此漏洞涉及“拒绝服务”攻击。这意味着远程攻击者在适当的情况下能够将您的服务或服务器减慢到爬行或耗尽可用于服务请求的内存,使其无法及时为合法客户端提供服务。

没有迹象表明这会导致远程攻击;第三方可能会危及您的安全并获得服务器本身的立足点。此漏洞的结果纯粹是通过使您的服务器停止运行并拒绝与服务器的其他连接来拒绝服务。

因此LimitRequestFieldSize解决方法不够,您可以修改有关 apache wiki 文档的Range参数咨询Mitigation段落:http ://wiki.apache.org/httpd/CVE-2011-3192 您获得返回 http 代码之间的切换:从 206 到 200。您最好使用 apache配置,但您仍然面临 DoS 漏洞。

我添加mod_headers了这一行:

RequestHeader unset Range

现在我的页面返回 http 代码 200。为了限制可用于服务请求的耗尽内存,我限制mod_limitipconn使用此代码添加的 ip 连接:

MaxConnPerIP 10
于 2012-07-29T20:43:55.647 回答