web-dev-qa-db-ja.com

X-Powered-Byの削除

  1. PHPでX-Powered-Byヘッダーを削除するにはどうすればよいですか?私はApacheサーバーを使用しており、php 5.21を使用しています。 5.21ではサポートされていないため、phpでheader_remove関数を使用できません。 Header unset X-Powered-Byを使用しました。ローカルマシンでは機能しましたが、実稼働サーバーでは機能しませんでした。

  2. PHPがバージョン5.3未満のheader_remove()をサポートしていない場合、代替手段はありますか?

127
Castor

PHP.iniexpose_php設定によって制御されていると思います。

expose_php = off

PHPがサーバーにインストールされているという事実を公開するかどうかを決定します(たとえば、その署名をWebサーバーヘッダーに追加することによって)。セキュリティ上の脅威ではありませんが、サーバーでPHPを使用しているかどうかを判断できます。

直接的なセキュリティリスクはありませんが、David Cが指摘しているように、PHPの古い(そして脆弱な可能性がある)バージョンを公開することは、人々が攻撃しようとする誘いになります。

220
Pekka 웃
70
Pepper

expose_phpディレクティブ を無効にできない場合は、PHPの会話性をミュートします(php.iniへのアクセスが必要です) )、 ApacheのHeaderディレクティブ を使用してヘッダーフィールドを削除できます。

Header unset X-Powered-By
49
Gumbo
if (function_exists('header_remove')) {
    header_remove('X-Powered-By'); // PHP 5.3+
} else {
    @ini_set('expose_php', 'off');
}
21
luchaninov

Php.iniにアクセスできる場合は、expose_php = Offを設定します。

13

次のように、ヘッダーを送信する前にheader()呼び出しを追加してみてください。

header('X-Powered-By: Our company\'s development team');

php.iniのexpose_php設定に関係なく

2
Daniel Faure

FastCGIを使用する場合:

fastcgi_hide_header X-Powered-By;
2

このソリューションは私のために働いた:)

スクリプトに以下の行を追加して確認してください。

Nginx/Apacheなどのレベル設定は不要な場合があります。

header("Server:");
0
Walk