所以我遇到了一小部分传入请求导致“400错误请求”错误的问题,我真的可以使用一些输入。起初我以为他们只是由恶意蜘蛛,刮板等造成的,但他们似乎是合法的请求。生成“400错误请求”的看似合法请求
我正在运行Apache 2.2.15和mod_perl2。
我做的第一件事是打开mod_logio,有趣的是,对于发生这种情况的每个请求,请求标头都在8000-9000字节之间,而大多数请求在1000以下。
有很多cookie被设置,并且它发生在所有浏览器和操作系统中,所以我认为它必须与不良或“损坏”的cookie有关 - 但事实并非如此。
我在我的LogFormat指令中添加了\“%{Cookie}我希望能够提供一些线索,但是结果是返回400错误的一半时间,客户端甚至没有cookie。该死。
接下来我启动了mod_log_forensic希望能够看到所有的请求标题,但幸运的是,它没有什么记录,当它发生。我猜Apache在取证模块进行日志记录之前会返回400错误?
顺便说一句,当发生这种情况我看到这个错误日志:
请求失败:错误读取头
对我来说这说Apache不喜欢的东西有关的原始传入的请求,而不是我们改写的问题,等等。或者我误解了错误?
我不知道该从哪里出发。有没有其他方式可以轻松查看所有请求标头?我觉得这是唯一可能提供关于发生的事情的线索。
这些是GET请求。对不起,我感到困惑 - 我提到的8000-9000字节是指请求和所有请求头的总大小。第一行的请求都看起来很正常。 – user3599501 2015-02-08 15:26:14
我们设置了很多cookie,结果我们只需要修改LimitRequestFieldSize,默认为8190.希望这有助于别人有一天... – user3599501 2015-02-08 19:09:59