Contents
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 Drive | sffe |
Amazon | Server |
IPA | Apache |
この結果からみても、やはりServerヘッダでレスポンスするのはWebサーバの製品名くらいにしておいた方がよさそうです。
X-Powered-Byヘッダは考えるまでもなく、レスポンスヘッダに含めるのは避けた方がいいでしょう。