2012-02-07 237 views
2

我有一个Apache服务器,它获取格式错误的HTTP请求(Cookie大小非常大)。服务器显示Cookie值和错误请求。有没有办法解决这个问题?Apache中格式错误的HTTP请求

我试过ErrorDocument指令,但在这种情况下没有帮助。

+0

什么是非常大的? Cookie值有一个上限 – fyr 2012-02-07 13:39:25

+0

是的......这就是为什么我称之为格式错误的HTTP请求.. HTTP请求已被手动调整...当HTTP请求命中服务器时,它实际上会引发一个400响应代码以及一个显示实际cookie内容的页面... – thefourtheye 2012-02-07 13:41:38

回答

1

看看这个页面,它会详细解释它。它也将告诉你你描述的完全相同的问题:

实例与解释:http://stevesouders.com/tests/cookie-max.php

如果你想拥有自定义错误处理

ErrorDocument 400 

应该做的工作,如果在配置正确.htaccess文件。您也可以直接在httpd.conf中配置它(请参阅:https://serverfault.com/questions/158122/problems-redirecting-error-400-bad-request-to-custom-page)。

尽管这个配置选项来解决这个问题,你应该考虑这样做的可能性基于为何出错的原因如下:虽然经常使用您的网站

  • 此错误occures - Fix your code这种情况不应该发生并且Cookie总共不应超过4k
  • 这可能不会在您定期使用您的网站时发生 - Fix nothing。千万不要把时间花在漂亮的页面上,这些页面只会被那些试图以某种方式利用东西的人看到。
+0

正确...这正是我的问题所在......但我不希望Apache抛出“Request Error(invalid_request)”页面。我想自己处理它...可能吗? – thefourtheye 2012-02-07 13:49:36

+0

通过ErrorDocument它应该是可能的。但是,您可能需要有某种脚本才能删除Cookie。事情通常是不应该发生的。 – fyr 2012-02-07 13:51:31

+0

引用自http://httpd.apache.org/docs/2.0/mod/core.html#errordocument “尽管大多数错误消息都可以被覆盖,但是在某些情况下使用内部消息而不管设置如何'的ErrorDocument'。特别是,如果检测到格式错误的请求,正常请求处理将立即停止并返回内部错误消息。这是必要的,以防止不良请求造成的安全问题。“ 这排除ErrorDocument,我猜... – thefourtheye 2012-02-07 14:01:02