Nginx を使っていると、特に意識しなくてもレスポンスヘッダにサーバー情報が含まれます。
Server: nginx/1.24.0
このバージョン情報、アプリケーションの動作には一切不要ですし、公開していて嬉しい情報でもありません。
セキュリティ観点では「出さなくていいものは出さない」が基本なので、普通に隠します。
server_tokens off
Nginx では設定はこれだけです。
server_tokens off;
http / server / location いずれのコンテキストでも指定できますが、通常は http に書いておけば十分です。
http {
server_tokens off;
# ...
}
これでレスポンスヘッダは次のようになります。
Server: nginx
バージョン番号は出なくなります。
エラーページにも効く
server_tokens off は、通常のレスポンスだけでなく、
404 や 500 などのエラーページ下部に表示されるバージョン情報にも適用されます。
地味ですが、ちゃんと効きます。
それ以上やる必要はある?
たまに「Server ヘッダ自体を消したい」という話も見かけますが、
- Nginx 標準では完全には消せない
- モジュール追加やパッチが必要
- 得られるメリットはかなり限定的
という理由から、server_tokens off で十分だと考えています。
バージョンが見えないだけでも、不要な情報露出は確実に減ります。
おわりに
Nginx を使うなら、ほぼデフォルトで入れておいていい設定です。
万が一、そのバージョンに脆弱性があってもいけませんし。

コメント