2012-04-08 55 views
4

今天我在我的服務器上發現了一件奇怪的事情。 我創建了一個php文件(test.php)並在裏面寫了一些php代碼。那我打電話給它使用爲什麼Apache在沒有擴展名的情況下在調用文件上執行php文件

http://127.0.0.1/test 

和「test.php」執行!在沒有.php的情況下如何運行test.php? 在我的根目錄下沒有htaccess文件來告訴apache這樣做。 我想這可能會導致安全問題。我怎樣才能防止它?

我的操作系統是ubuntu,web服務器是Apache2。

+0

這是如何引起安全問題的?如果有人可以訪問example.com/test,他們可以訪問example.com/test.php。 – JJJ 2012-04-08 09:07:14

回答

3

檢查你的Apache配置(在/ etc/apache2的/網站可用/ [SITE_NAME或默認]),它可能包含mod_rewrite的指令,例如:

RewriteEngine on 
RewriteBase/
RewriteCond %{DOCUMENT_ROOT}/$1.php -f 
RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L] 

如果你把它們註釋掉以#重啓apache,訪問/測試沒有指定擴展應該不再工作。

相關問題