这就是问题所在:当请求网址时,我会得到回复:
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文件)在请求文件的路径中。)
关于如何在查询字符串中传递多个'../成功的任何想法?
答案 0 :(得分:1)
原来是由托管服务提供商默认启用安全预防措施 - 不允许'反向路径',但我不确定哪一个,以及它在哪里设置。