今天我在我的服务器上发现了一个奇怪的东西。我创建了一个php文件(test.php),并在里面写了一些php代码。然后我调用它,使用
http://127.0.0.1/test然后执行"test.php“!在没有.php的情况下运行test.php是怎么理解的?在我的根目录中没有htaccess文件来告诉apache这样做。我猜这可能会导致安全问题。我怎样才能防止它呢?
我的操作系统是ubuntu,web服务器是Apache2。
发布于 2013-03-30 07:55:31
这是因为MultiViews (它是在该目录的“选项”中启用的)。
请看这里:http://httpd.apache.org/docs/current/content-negotiation.html#negotiation了解其工作原理的详细信息。
发布于 2012-04-08 17:04:51
检查您的apache配置(/etc/apache2/sites-available/site_name或default),它可能包含mod_rewrite指令,例如:
RewriteEngine on
RewriteBase /
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]如果您使用#将它们注释掉并重新启动apache,则在不指定扩展名的情况下访问/test应该不再起作用。
https://stackoverflow.com/questions/10061602
复制相似问题