01
このノートの前提
- 設定の意味と根拠と制約を整理するためのノートです。設定変更のコマンドや、攻撃の再現手順は載せていません。
- 本番環境で試すことは勧めません。変更は、権限のある管理者・保守会社が、検証環境と承認手続きを通して行います。
- 初めての方は、先に入門ガイドや情報を守る対策の全体像を読むと、位置づけがつかみやすくなります。
本文では、主張の確からしさを次の4つで区別しています:観測 特定の条件で確認した事実/一般 一般に起こり得る仕組み/条件付き 構成や権限が満たされた場合/要調査 外からは結論できず内部確認が必要。
02
通信:TLS/HTTPS と HSTS
HTTPS(TLS)が守るもの・守らないもの
HTTPSは、閲覧者のブラウザとWebサーバーの間の通信を暗号化し、通信相手が正しいサーバーであることを確かめる仕組みです。通信の途中での盗み見や書き換えを防ぎます。一般
一方で、サーバーに届いたあとのデータ、サーバーの設定、CMSの弱点、管理画面のパスワードは、HTTPSでは守れません。「鍵マークがある=サイトが安全」ではありません。
HSTS:常にHTTPSで接続させる指示
HSTS(HTTP Strict Transport Security)は、「このサイトには一定期間、HTTPSでしか接続しないこと」をブラウザに覚えさせる応答ヘッダーです。利用者が http:// のアドレスを開いても、ブラウザがHTTPSに置き換えて接続します。
| 指定 | 意味 | 注意点 |
|---|---|---|
| max-age | ブラウザがHTTPSのみで接続する期間(秒) | 期間中は、設定をやめてもブラウザに残る。対象から外すには max-age=0 を受け取らせる必要がある |
| includeSubDomains | サブドメインにも適用する | HTTPでしか提供できないサブドメインがあると、そこへ接続できなくなる |
| preload | ブラウザに組み込まれた一覧への登録を希望する | 登録されると長期間にわたる影響を持ち得る。慎重に判断する |
HSTSの最も大きな注意点
- HSTSが有効な間に、証明書の期限切れなどHTTPSの問題が起きると、ブラウザは警告を無視して進むこともできず、利用者はサイトを開けなくなります。行政サービスの停止につながるため、証明書の自動更新と監視が前提になります。
- 短い max-age で始めて問題がないことを確かめてから延ばす、段階的な導入が勧められています。
詳しく:根拠
- RFC 6797:http の参照を https に変換(2.2)、max-age の間 Known HSTS Host とみなす(6.1.1)、includeSubDomains(6.1.2)、証明書の検証エラーを含むエラーで接続を打ち切る(8.4)、利用者が回避できない(12.1 No User Recourse)、max-age=0 で対象から外れる(6.1.1)
- OWASP HTTP Headers Cheat Sheet:HSTSの誤設定や証明書の問題があると、正規の利用者がサイトにアクセスできなくなる場合がある
- OWASP HTTP Strict Transport Security Cheat Sheet:includeSubDomains の影響、短い max-age での試行、preload の影響
03
ブラウザへの指示:HTTPセキュリティヘッダー
HTTPセキュリティヘッダーは、Webサーバーが応答と一緒にブラウザへ送る「安全な動作の指示」です。ブラウザ側で特定の攻撃を成り立ちにくくします。サイトの作りの弱点そのものを直すものではありません。
| ヘッダー | 何をする | 抑えるもの | 副作用・注意 |
|---|---|---|---|
| Content-Security-Policy(CSP) | ページが読み込んでよい場所や、実行してよいスクリプトを指定する | クロスサイト・スクリプティング(XSS)などの影響 | 許可していない外部の読み込みや、ページ内に直接書かれたスクリプトが止まる。XSS対策の唯一の手段にしない |
| CSP frame-ancestors/X-Frame-Options | 他のサイトがこのページを枠(iframeなど)の中に表示できるかを指定する | クリックジャッキング(見えない枠で操作させる手口) | 対応するブラウザでは frame-ancestors が X-Frame-Options に代わる。他サイトへの埋め込みを意図している場合は許可先を検討 |
| X-Content-Type-Options: nosniff | 応答の種類(Content-Type)を推測せず、示されたとおりに扱わせる | 種類の取り違えを悪用した攻撃 | サイト全体で Content-Type を正しく設定しておく必要がある |
| Referrer-Policy | リンク先へ、どのページから来たかをどこまで伝えるかを指定する | アドレスに含まれる情報の外部への漏れ | ブラウザの既定値に頼らず、明示的に指定することが勧められている |
| Server などの情報を示すヘッダー | サーバーソフトの名前やバージョンを示す | (削除・情報を減らすことで)攻撃者の下調べの手がかり | 隠しても、他の方法で推測される。更新の代わりにはならない |
詳しく:根拠
- OWASP Content Security Policy Cheat Sheet:CSPは信頼する読み込み元を指定する。default-src や script-src が有効な場合、既定でインラインのスクリプトを無効にする。XSSに対する唯一の防御として頼るべきではない
- W3C Content Security Policy Level 3(2026年9月16日付 Working Draft):frame-ancestors はリソースを埋め込める URL を制限する。form-action はフォームの送信先として使える URL を制限する
- OWASP HTTP Headers Cheat Sheet:X-Frame-Options はクリックジャッキング対策に使え、CSP frame-ancestors が対応ブラウザで X-Frame-Options に代わる。X-Content-Type-Options: nosniff と Content-Type の正しい設定。Referrer-Policy: strict-origin-when-cross-origin を明示的に設定。Server ヘッダーは削除か情報を持たない値に(攻撃者は他の方法でも特定し得る)
04
ヘッダーでは守れないもの
ヘッダーは「ブラウザでの動き」を制御します。次のものは、ヘッダーの外にある別の対策で守ります。
| 対象 | 主な対策 | 関連する分類 |
|---|---|---|
| 認証 | 多要素認証。方式によって強さが違い、SMSや手入力のコードはフィッシングに弱い。WebAuthn(FIDO2)はフィッシング耐性を持つ方式の例 | A07 認証の不備 |
| 認可(権限) | 最小権限、管理機能へのアクセス制御、権限の昇格を防ぐ設計 | A01 アクセス制御の不備 |
| CMS・依存する部品 | 使っている部品とバージョンの把握、脆弱性情報の監視、不要な部品の削除、段階的な更新 | A03 ソフトウェアサプライチェーンの不備 |
| 設定全般 | 不要な機能・サービスの停止、既定値の見直し、公開用ディレクトリに置くファイルの管理 | A02 セキュリティ設定の不備 |
| 保管データ・バックアップ | 保存先と閲覧権限の把握、世代管理されたバックアップと復元の確認 | (組織の運用) |
| 監視・ログ | ログの取得と、誰かが確認・通知を受ける体制 | A09 セキュリティログとアラートの不備 |
初心者向けの説明は情報を守る対策の全体像(8つの対策)にあります。根拠の詳細は同ページの出典欄と、資料案内を参照してください。
05
誤設定による影響と、変更の進め方
セキュリティ設定は、強くするほど「許可していないもの」が止まります。自治体サイトでは、次のような機能に影響が出ることがあります。条件付き
変更CSPで読み込み元を絞る
起こり得る影響外部の地図・動画・SNSの埋め込み、アクセス解析、ページ内に直接書いたスクリプトが動かなくなる
変更CSPの form-action でフォームの送信先を絞る
起こり得る影響外部のフォームサービスや申請システムへの送信が止まる
変更frame-ancestors/X-Frame-Options で埋め込みを禁止する
起こり得る影響他のサイトや庁内ポータルにページを埋め込んで表示している場合、表示されなくなる
変更HSTSの includeSubDomains を付ける
起こり得る影響HTTPでしか提供していないサブドメインのサービスに接続できなくなる
安全な進め方
- 現状を棚卸しする使っている外部サービス、埋め込み、フォームの送信先、サブドメイン。
- 完成形を設計する何を許可し、何を止めるか。止まる機能の代わりも含めて決める。
- 強制せずに試すCSPは Report-Only で違反だけを記録し、影響を確かめられる。
- 検証環境で確かめる主要ページ・フォーム・地図などの動作を確認。
- 戻し方を決めて適用すぐに戻せない設定(HSTS)は特に慎重に。
詳しく:根拠
- W3C CSP Level 3 3.2:Report-Only で、ポリシーを強制せずに効果を監視して試すことができる
- OWASP Content Security Policy Cheat Sheet:Report-Only での段階的な導入
- IPA「安全なウェブサイトの作り方」はじめに:保険的対策は、内容によっては本来の機能を制限することがあり、副作用の影響も考慮する必要がある(PDF p.6)
「地図・動画・SNS・解析・外部フォーム」という具体例は、資料に書かれた仕組みからの当てはめです。実際の影響は、サイトの構成ごとに確かめる必要があります。
06
検証の考え方と限界
外部の診断ツールで「見える」範囲
公開情報に基づく診断ツールは、外部から取得できる応答(ヘッダー、証明書、公開ページのHTML、DNSの公開情報など)を見て判定します。サーバーの内部、管理画面の設定、保管データの扱い、バックアップ、運用体制は見えません。要調査
- 巡回する範囲が限られる:トップページなど数ページしか見ない場合、他のページの状態はわかりません。
- 判定できない項目がある:条件がそろわない項目は「対象外」などとして判定から外れます。点数は「判定できた項目について」の結果です。
- 誤検知と見逃し:外から見える兆候から推定する項目は、実際とずれることがあります。
- 条件で結果が変わる:入力するアドレス(http か https か)や、確認した時点によって結果が変わることがあります。比較するときは条件をそろえます。
内部の確認と、脆弱性診断
サイトの作りの弱点は、ソースコードの確認や、ウェブアプリケーションに対する脆弱性診断で調べます。総務省ガイドラインの解説も、開発者が気付かない脆弱性が残る可能性に触れ、診断の種類を使い分けることを示しています。どちらも、管理者の承認と対象範囲の合意のうえで、許可された専門家が行います。
結果の書き方
検証の結果は、何を、いつ、どの方法で、どこまで見たかと、見ていないものを一緒に残します。「問題が見つからなかった」と「安全である」は同じではありません。自社サイトでの記録の例はRe:meの改善記録にあります。
詳しく:根拠
- 総務省ガイドライン(令和8年3月版)第3編 解説:脆弱性を含まないように開発しても、開発者の気付かない脆弱性が存在してしまう可能性がある。脆弱性診断にはソースコード診断、ウェブアプリケーション診断等の種類があり、必要に応じて使い分ける(PDF p.241)
- 巡回範囲・判定できない項目・条件による結果の違いは、Re:meが自社サイトで利用した外部診断ツールの診断レポートと公開されている判定基準から確認した事項です(改善記録の「限界」)。他のツールには当てはまらない場合があります
08
参考資料
公開元のページまたは本文で、名称・版・該当箇所を確認しました(確認日は各項目に記載)。
-
RFC 6797 HTTP Strict Transport Security (HSTS)
このページでの用途:2.2、6.1.1、6.1.2、8.4、12.1
-
Content Security Policy Level 3
このページでの用途:Report-Only(3.2)、frame-ancestors、form-action
策定中の文書です。
-
OWASP Cheat Sheet Series(HTTP Headers/Content Security Policy/HTTP Strict Transport Security/Multifactor Authentication)
このページでの用途:各ヘッダーの推奨と注意、CSPの役割と限界、HSTSの導入上の注意、多要素認証の方式ごとの弱点
https://cheatsheetseries.owasp.org/cheatsheets/HTTP_Headers_Cheat_Sheet.html
https://cheatsheetseries.owasp.org/cheatsheets/Content_Security_Policy_Cheat_Sheet.html
https://cheatsheetseries.owasp.org/cheatsheets/HTTP_Strict_Transport_Security_Cheat_Sheet.html
随時更新される文書です。内容は確認日時点のものです。
-
OWASP Top 10:2025
このページでの用途:A01・A02・A03・A07・A09 の分類名と予防策の要点
-
NIST Special Publication 800-63B(800-63-4 版)
このページでの用途:フィッシング耐性、手入力のコードの扱い、WebAuthn の例
https://pages.nist.gov/800-63-4/sp800-63b.html
米国連邦政府のシステム向けの指針です。
-
地方公共団体における情報セキュリティポリシーに関するガイドライン(令和8年3月版)
このページでの用途:第3編 解説の脆弱性診断(PDF p.241)
-
安全なウェブサイトの作り方
このページでの用途:保険的対策の副作用(PDF p.6)