HTTPレスポンスヘッダの不必要な情報開示(Server_X-Powered-By)について

Serverヘッダについて

例えばデフォルト設定のApacheは、下図のようにレスポンスにServerヘッダが含まれます。

ServerヘッダにはWebサーバの製品名とバージョン、OSが記載されます。

root@localhost:/var/www/html# apachectl -v
Server version: Apache/2.4.48 (Debian)

Serverヘッダの存在は脆弱性と言えるのか

ServerヘッダにWebサーバのバージョンまで含めるのは、一般的には避けるべきだと言われています。

Server の値は、攻撃者が既知のセキュリティホールを悪用するのを (少し) 容易にする情報を暴露する可能性があるので、過度に詳細にすることは避けてください。

どのくらいの詳細を含めるかのバランスを取るのは興味深いことです。 OS のバージョンを公開することは、先ほどの過度に詳細な値についての警告で述べたように、おそらく悪い考えです。

Server | MDN Web Docs

Apacheの場合は以下のようにconfファイルに1行追加するだけで、Serverヘッダに含める情報を制御することができます。

ServerTokens Prod

上記の詳細が気になる方はApacheのドキュメントを確認してください。

設定変更後にApacheを再起動すると、下図のようにServerヘッダからバージョンとOSが省略されていることが分かります。

X-Powered-Byヘッダについて

Serverヘッダとは別に、下図のようにレスポンスにX-Powered-Byヘッダが付加されることがあります。

X-Powered-ByヘッダにはPHPやASP.NETなどのバージョンが記載されます。

root@localhost:/var/www/html# php -v
PHP 8.0.11 (cli) (built: Sep 23 2021 19:14:43) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.11, Copyright (c) Zend Technologies

X-Powered-Byヘッダの存在は脆弱性と言えるのか

一般的に、X-Powered-Byヘッダはレスポンスに含まれるだけで脆弱性と判断されることが多いです。

ホスティング環境やその他のフレームワークによって設定される可能性があり、アプリケーションや訪問者に有益ではない情報を含みます。潜在的な脆弱性が発現することを防ぐために、このヘッダーは設定しないでください。

HTTP ヘッダー | MDN Web Docs

PHPの場合、以下のようにphp.iniに1行追加するだけで、X-Powered-Byヘッダがレスポンスヘッダに含まれなくなります。

# expose_php = On
expose_php = Off

有名なWebサイトのServerヘッダを見てみる

最後に、有名なWebサイト(サービス)はServerヘッダをどういう形でレスポンスしているかを見てみます。

Google Drive

Amazon

IPA

各サイトのServerヘッダまとめ

Google Drivesffe
AmazonServer
IPAApache

この結果からみても、やはりServerヘッダでレスポンスするのはWebサーバの製品名くらいにしておいた方がよさそうです。

X-Powered-Byヘッダは考えるまでもなく、レスポンスヘッダに含めるのは避けた方がいいでしょう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)