😸

レスポンスヘッダー内のserverの値を隠蔽する

2023/10/28に公開

概要

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