PHPでX-Powered-Byヘッダーを削除するにはどうすればよいですか?私はApacheサーバーを使用しており、php 5.21を使用しています。 5.21ではサポートされていないため、phpでheader_remove関数を使用できません。 Header unset X-Powered-Byを使用しました。ローカルマシンでは機能しましたが、実稼働サーバーでは機能しませんでした。
PHPがバージョン5.3未満のheader_remove()をサポートしていない場合、代替手段はありますか?
PHP.ini のexpose_php
設定によって制御されていると思います。
expose_php = off
PHPがサーバーにインストールされているという事実を公開するかどうかを決定します(たとえば、その署名をWebサーバーヘッダーに追加することによって)。セキュリティ上の脅威ではありませんが、サーバーでPHPを使用しているかどうかを判断できます。
直接的なセキュリティリスクはありませんが、David Cが指摘しているように、PHPの古い(そして脆弱な可能性がある)バージョンを公開することは、人々が攻撃しようとする誘いになります。
header_remove("X-Powered-By");
expose_phpディレクティブ を無効にできない場合は、PHPの会話性をミュートします(php.iniへのアクセスが必要です) )、 ApacheのHeader
ディレクティブ を使用してヘッダーフィールドを削除できます。
Header unset X-Powered-By
if (function_exists('header_remove')) {
header_remove('X-Powered-By'); // PHP 5.3+
} else {
@ini_set('expose_php', 'off');
}
Php.iniにアクセスできる場合は、expose_php = Off
を設定します。
次のように、ヘッダーを送信する前にheader()呼び出しを追加してみてください。
header('X-Powered-By: Our company\'s development team');
php.iniのexpose_php設定に関係なく
FastCGIを使用する場合:
fastcgi_hide_header X-Powered-By;
このソリューションは私のために働いた:)
スクリプトに以下の行を追加して確認してください。
Nginx/Apacheなどのレベル設定は不要な場合があります。
header("Server:");