我们网站的团队刚刚发现,任何用户都可以在以 .php 扩展名结尾的 URL 后面添加斜杠“/”,然后添加任何字符串,并且仍然可以访问相同的原始页面。
例如:
我可以通过以下方式访问 www.mydomain.com/index.php:
- www.mydomain.com/index.php/test
- www.mydomain.com/index.php/test/123
- www.mydomain.com/index.php/wqeqwew/2234dwd
(注意:index.php/之后的附加字符串在服务器中不存在,它们只是一些垃圾)
另一个问题是,对于我的动态 URL,我总是可以在我的域名和第一个参数之间添加一个不存在的 php 文件。
例如:
我可以通过以下方式访问 www.mydomain.com/product/one:
- www.mydomain.com/test.php/product/one
- www.mydomain.com/imnothere.php/product/one
我怎样才能防止这种情况发生以及如何处理?这在 SEO 或安全方面是一个严重的问题吗?我希望每当在浏览器中输入或单击此类 URL 时,网站都会返回 404 错误。
任何帮助是极大的赞赏。谢谢!
EDIT:
我想我已经修好了。对于第一个问题,我添加了AcceptPathInfo Off
在我的 .htaccess 中。对于第二个问题,我刚刚添加了^
在我的动态 URL 的 RewriteRule 之前,例如RewriteRule ^product/(.*)$
这样就没有人可以在域名和第一个参数之间添加任何额外的字符串。感谢您的帮助!
我怎样才能防止这种情况发生以及如何处理?
这是由于阿帕奇的AcceptPathInfo http://httpd.apache.org/docs/2.2/en/mod/core.html#acceptpathinfo指示。您可以将其关闭 - 如果服务器进行了相应配置,您只需要一个 .htaccess 文件即可。
这在 SEO 或安全方面是一个严重的问题吗?
我想不出有什么办法可以使它成为一个严重的问题。它通常在大多数处理程序中默认启用,并且通常被用作“穷人的”mod_rewrite
“(一种提供精美 URL 的方法)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)