2012-04-08 6 views
4

今日私のサーバー上で奇妙なことが見つかりました。 私はPHPファイル(test.php)を作成し、その中にいくつかのPHPコードを書きました。Apacheが拡張子なしでファイルを呼び出す際にPHPファイルを実行するのはなぜですか?

http://127.0.0.1/test 

「test.php」が実行されました。 .phpがないときにtest.phpを実行するとどうなりますか? 私のルートディレクトリにhtaccessファイルがありませんので、Apacheに指示してください。 セキュリティ上の問題が発生する可能性があります。どうすればそれを防ぐことができますか?

私のOSはubuntuで、WebサーバーはApache2です。

+0

これはどのようにセキュリティの問題を引き起こしますか?誰かがexample.com/testにアクセスできる場合は、example.com/test.phpにアクセスするだけでよいのです。 – JJJ

答えて

3

Apacheの設定([SITE_NAMEまたはデフォルト] /は/ etc/apache2の/ - 利用可能なサイト)を確認し、それはおそらく、たとえば、mod_rewriteの指示が含まれています

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

あなたは#と、再起動して、それらをコメントアウトした場合apache、拡張機能を指定せずにアクセス/テストすることはもはや機能しません。

関連する問題