为什么 apache 会用代码 200 记录对 GET http://www.google.com 的请求?

Pau*_*aul 4 linux http httpd vulnerabilities apache-2.2

我最近被问到“是什么导致我们的 access.log 中出现这样的一行?”

59.56.109.181 - - [22/Feb/2010:16:03:35 -0800]“获取http://www.google.com/ HTTP/1.1" 200 295 "-" "Mozilla/5.0(兼容;MSIE 5.01 ; Win2000)"

我的直接回答是有人在探索一些有点狡猾的东西。

但:

  • 如何?推测...一个简短的 perl 或 python 脚本可以很容易地连接并请求一个带有无效主机的 URL。
  • 漏洞?当他们这样做时,他们在寻找什么,他们学到了什么,我们应该修补它吗?
  • 我需要一顶锡箔帽子来防止他们读懂我的想法吗?
  • 对我来说真正的问题是:那不应该是 404 响应,而不是 200 响应!?

这是在标准 LAMP 服务器 (Ubuntu) 上。

小智 6

也许你想阅读http://wiki.apache.org/httpd/ProxyAbuse

特别是这一点:“我的服务器已正确配置为不代理,那么为什么 Apache 会返回 200(成功)状态代码?”,它会问您的问题“那不应该是 404 响应,而不是 200!?”

如果 apache conf 没问题,它只是发送根页面。这是因为你得到的状态码是 200。