😸
レスポンスヘッダー内のserverの値を隠蔽する
概要
ResponseHeaderで返却されるserverの値を制限するよう業務で確認なったので軽く確認します。
結論
server・・・apacheのhttpd.confに「ServerTokens Prod」でApacheのみ返却される様になる
まずは確認
xamppで起動したアパッチサーバーへリクエストすると下記のようにserverによってバージョン情報が出力されます。
curl -I -s localhost
HTTP/1.1 302 Found
Date: Tue, 17 Oct 2023 19:16:02 GMT
Server: Apache/2.4.56 (Win64) OpenSSL/1.1.1t PHP/8.2.4
X-Powered-By: PHP/8.2.4
Location: http://localhost/dashboard/
Content-Type: text/html; charset=UTF-8
なぜ表示しないように制限するのか
server・・・脆弱性のあるサーバーのバージョンを利用している場合、攻撃を受けてしまうため
serverについて
apacheの設定に下記を記載します。
apache\conf
ServerTokens Prod
再起動して確認
curl -I -s localhost
HTTP/1.1 302 Found
Date: Wed, 18 Oct 2023 08:05:24 GMT
Server: Apache
X-Powered-By: PHP/8.2.4
Location: http://localhost/dashboard/
Content-Type: text/html; charset=UTF-8
おまけ
apacheでサーバーフィールドを設定した場合と、java側でフィールドを設定した場合、どちらが優先されるのか?
プロジェクトを作って確認してみます。
res.setHeader("Server", "Apache/2.4.56 (Win64) OpenSSL/1.1.1t PHP/8.2.4");
Discussion