Apache:查询字符串中的多个../ =内部服务器错误(错误500)

时间:2010-03-05 19:33:11

标签: apache query-string

这就是问题所在:当请求网址时,我会得到回复:

500 Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
...
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

日志说:

xxx.xxx.xxx.xxx - - [05/Mar/2010:13:43:29 -0500] "GET /path/to/file.html?param=../../something/something HTTP/1.1" 404 - "-" ...

如果我在查询字符串中删除了一个'../'实例(请求http://server/path/to/file.html?param=../../something/something),我会得到reqested页面。它仅在两个或更多'../'上给出错误。

这是在一些托管服务器上,同样的事情在我的本地服务器(LAMP,WAMP)上没有错误。我想这是关于apache配置,但我不知道要检查哪些选项。

Apache2.2.14(Unix)有问题,安装了PHP(但是当我请求普通的'HTML文件时,它显然与PHP没有任何关系),mod_rewrite规则被禁用(没有.htaccess文件)在请求文件的路径中。)

关于如何在查询字符串中传递多个'../成功的任何想法?

1 个答案:

答案 0 :(得分:1)

原来是由托管服务提供商默认启用安全预防措施 - 不允许'反向路径',但我不确定哪一个,以及它在哪里设置。