ドキュメント / Sentinel Security / トラブルシューティング

CSPを設定したらサイトが表示されなくなりました

Q. CSP(Content Security Policy)を設定したらサイトが表示されなくなりました

A. CSP の設定が厳格すぎて、正規のスクリプトやスタイルシートがブロックされている状態です。

応急処置

まず、サイトの表示を復旧させましょう。

  1. SentinelSecurityセキュリティヘッダー設定 にアクセスします(管理画面は CSP の影響を受けません)
  2. CSP の設定を 無効 にするか、Report-Only(学習) モードに変更します
  3. 保存 をクリックします
  4. サイトのフロントエンドが正常に表示されることを確認します
管理画面にもアクセスできない場合は、FTP で /wp-content/plugins/sentinel-security フォルダ名を変更してプラグインを無効化してください。

正しい CSP の導入手順

CSP は段階的に導入することが重要です。

ステップ 1: スマートスキャン

スマートスキャン 機能を使って、サイトで使用されているリソース(スクリプト、スタイルシート、画像、フォントなど)のオリジンを自動的にスキャンします。これにより、許可すべきドメインが一覧表示されます。

ステップ 2: Report-Only モードで学習

CSP モードを Report-Only(学習) に設定し、1〜2週間運用します。このモードでは実際にはリソースがブロックされず、ポリシーに違反するリソースがレポートとして記録されるだけです。

ステップ 3: 違反ログの確認

CSP違反ログ を確認し、正規のリソース(自サイトのスクリプト、Google Analytics、CDN のフォントなど)をポリシーに追加します。

ステップ 4: Enforce モードに切り替え

違反が十分に減少したら、Enforce(適用) モードに切り替えます。

実際によくあるケース(.htaccess 本番モード)

症状

  • .htaccess本番モード にしている
  • 学習モード終了後 に、実運用で必要なドメインを CSP に反映していない
  • 結果として Content-Security-Policy に許可が不足し、JS/CSS/API がブロックされる

なぜ起きるのか

学習モード中は、違反を収集するために Content-Security-Policy-Report-Only が使われます。
終了後は通常の Content-Security-Policy へ移行しますが、収集した違反ログを取り込んで許可ドメインを更新していない と、必要なリソースが遮断されます。

解決手順(最短)

  1. セキュリティヘッダー設定 で一度 学習モード に戻す
  2. 実際の利用画面(トップ、問い合わせ、会員、決済など)を操作して違反を再収集する
  3. CSP違反ログ を確認し、必要なドメインを script-src / style-src / connect-src などへ反映する
  4. 設定を保存して .htaccess を再生成する
  5. Enforce に戻し、ブラウザの開発者ツールでブロックが消えたことを確認する

補足

  • .htaccess が書き込み不可だと反映できません
  • CDN、解析タグ、外部APIを使うページは特に漏れやすいため、必ず実画面で確認してください

よくある原因

ブロックされるリソース対処
Google Fontsfont-srchttps://fonts.googleapis.com https://fonts.gstatic.com を追加
Google Analyticsscript-srcconnect-srchttps://www.googletagmanager.com を追加
インラインスクリプトscript-src'unsafe-inline' を追加(非推奨だが必要な場合)
CDN のスタイルstyle-src に CDN のドメインを追加
詳しい設定方法は セキュリティヘッダー設定 をご参照ください。