4

今日、私は自分のサーバーで奇妙なものを見つけました。phpファイル(test.php)を作成し、その中にいくつかのphpコードを記述しました。それから私はそれを使ってそれを呼びます

http://127.0.0.1/test

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

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

4

2 に答える 2

7

これは MultiViews が原因で発生します (そのディレクトリの「オプション」のどこかで有効になっています)。

仕組みの詳細については、 http : //httpd.apache.org/docs/current/content-negotiation.html#negotiationをご覧ください。

于 2013-03-29T23:55:30.870 に答える
3

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 にアクセスできなくなります。

于 2012-04-08T09:04:50.900 に答える