我在PHP中遇到了URL路由问题。
在我的localhost中,我有两个项目目录:
当我必须访问我的project_one时,我选择了localhost/project_one
这项工作是正确的。但是当我在这个localhost/project_one/../../hacking_script
开放localhost/hacking_script/index.php
文件中输入内容时。
所以如何防止它,我没有任何想法。我可以使用.htaccess来预防吗?如果是,那么如何?
答案 0 :(得分:1)
这是URL在浏览器中的工作方式。如果你有这个问题的网站:
http://stackoverflow.com/questions/36980771
如果你尝试:
http://stackoverflow.com/users/../questions/36980771
这将重定向到同一页面。这是设计状态。
答案 1 :(得分:1)
如果您正在谈论路由,那么您正在谈论这个问题:
Request -> Router -> GetController -> ExecuteAction
这意味着GetController
最喜欢include
或require
一些文件...有一部分,您需要确保它只需要允许的文件。例如,使用whitelist(这是推荐的方式)。或者确保不允许使用../
等特殊字符。