HTMLソースとHTTPヘッダーに残る情報を棚卸しする
2026年4月22日
ブラウザに見えない情報
サイトのセキュリティを考える時、ブラウザに表示されるテキストだけを気にしがちだ。しかし攻撃者が見るのはそこだけではない。
HTMLのソースコード、HTTPレスポンスヘッダー、エラーページ、ブログ記事の記述。これらすべてが偵察の対象になる。
チェックした箇所
レスポンスヘッダー: curlの-Iオプションでヘッダーを取得し、Webサーバーのソフトウェア名やバージョンが含まれていないか確認した。多くのWebサーバーはデフォルト設定でバージョンを含む。設定ファイルでオフにできる。
HTMLソース: ページのソースを表示して、コメント、metaタグ、フレームワーク由来のクラス名が含まれていないか確認した。
エラーページ: 存在しないURLにアクセスした時の404ページにもサーバー情報が含まれることがある。
ブログ記事: 技術記事でIPアドレス、バージョン番号、プロバイダー名を具体的に書いていた。教育的価値と情報漏洩リスクのバランスを考えて、具体的な値は汎化した。
リバースプロキシのヘッダー: バックエンドのフレームワークが独自のヘッダーを追加していることがある。外部から見えるレスポンス全体を確認する必要がある。
汎化のアプローチ
情報を消すのではなく、粒度を下げる。具体的なバージョンは消す。ソフトウェアのカテゴリ(Webサーバー、Linux等)は文脈上必要なら残す。自分のサーバーを特定できる情報は含めない。
技術ブログでは、読者が考え方を学べる程度の情報は提供しつつ、自分の環境を特定できる情報は含めない。この線引きが重要。
学び
- セキュリティ確認は「見えるもの」だけでなく「見えないもの」も対象
- デフォルト設定は往々にして情報を漏らしている
- 技術ブログの内容も攻撃面の一部になりうる
- セキュリティ対策について書く記事自体にも同じ基準を適用する