我们网站的团队刚刚发现,任何用户都可以在以.php扩展名结尾但仍访问同一原始网页的网址后添加斜杠'/',然后添加任何字符串。
例如: 我可以访问www.mydomain.com/index.php:
(注意:index.php /之后的其他字符串在服务器中不存在,它们只是一些垃圾)
另一个问题是,对于我的动态网址,我总是可以在我的域名和第一个参数之间添加一个不存在的php文件。
例如: 我可以访问www.mydomain.com/product/one:
如何防止这种情况发生?如何处理?这在SEO或安全方面是一个严重的问题吗?我希望每当在浏览器中输入或点击这些类型的URL时,网站都会返回404错误。
非常感谢任何帮助。谢谢!
修改
我想我已经修好了。对于第一个问题,我在.htaccess中添加了AcceptPathInfo Off
。对于第二个问题,我刚刚在我的RewriteRule之前为我的动态网址添加了^
,例如RewriteRule ^product/(.*)$
这样任何人都无法在域名和第一个参数之间添加额外的字符串。谢谢你的帮助!
答案 0 :(得分:1)
如何防止这种情况发生?如何处理?
这是由Apache的AcceptPathInfo
指令引起的。您可以将其关闭 - 如果相应地配置了服务器,您只需要一个.htaccess文件。
这在SEO或安全方面是一个严重的问题吗?
我想不出一个可能是一个严重问题的方式。它通常在大多数处理程序中默认启用,并且通常用作“穷人的mod_rewrite
”(一种提供看起来很奇特的URL的方法)。
答案 1 :(得分:0)
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [PT,L]