Cloudflare の Client-side security は、サイト訪問者が読み込む クライアントサイトリソース(スクリプトとその接続を含みます)の管理を支援し、HTTP トラフィックで最近検出された cookie ↗ の可視化も提供します。リソースが変わったとき、または悪意があると判定されたときに、アラート通知を出せます。
Client-side security は、サイトのレスポンスに Content Security Policy (CSP) HTTP ヘッダーを追加して動作します。CSP はブラウザー標準の仕組みで、ページが読み込めるリソースと、ポリシー違反時のレポート送信先を制御します。Cloudflare は目的に応じて、次の 2 種類の CSP ヘッダーを使います。
- リソースモニタリング(スクリプトと接続)
- コンテンツセキュリティルールの適用、またはこれらのルール違反の記録
次の表は、リソースモニタリング用とコンテンツセキュリティルール適用用の CSP HTTP ヘッダーを比較します。
| リソースモニタリング用 HTTP ヘッダー | コンテンツセキュリティルール用 HTTP ヘッダー |
|---|---|
content-security-policy-report-only |
content-security-policy-report-only(ログルール)content-security-policy(許可ルール) |
| 自動 — モニタリングが有効なときに付与 | 手動 — 定義したルールで作成 |
| HTML レスポンスのサンプルに追加 | 一致するレスポンスの 100% に追加(サンプリングなし) |
| 検出したスクリプトと接続をすべて報告 | CSP ディレクティブは許可リストから取得 |
| ブラウザーが違反レポートを Cloudflare へ送信 | ログルールは違反のみを報告 許可ルールは許可リストにないリソースをブロック |
リソースモニタリングをオンにすると、Cloudflare は HTML レスポンスのサンプルに content-security-policy-report-only HTTP ヘッダーを自動で追加します。この report-only ヘッダーは何もブロックしません。検出したスクリプトと接続に対して、ブラウザーが違反レポートを出す CSP ディレクティブを使います。ヘッダー形式の詳細は CSP HTTP ヘッダーの形式 を参照してください。
これらのレポートをもとに、Cloudflare はアプリケーション上で動いている全スクリプトと、それらがサードパーティのエンドポイントへ行う接続の一覧を作ります。Cookie についても、オリジンサーバーが設定したものと訪問者のブラウザーが設定したものの両方を、入出力の HTTP トラフィックから監視します。
リソースモニタリングが有効なあいだ、モニタリング用ヘッダーをオフにはできません。ヘッダーはレスポンスのサンプルに付与されるため、スクリプトや cookie をデプロイしてから、リソースモニタリングのダッシュボードにデータが出るまで 短い遅延 が生じることがあります。
クライアントサイトリソースモニタリングのダッシュボードには、Active なスクリプト、接続、cookie の一覧が表示されます。All Reported Scripts と All Reported Connections のダッシュボードには、頻度が低いものや Inactive なものを含む、ドメインで検出されたスクリプトと接続の全一覧が表示されます。
コンテンツセキュリティルール を作成すると、Cloudflare は許可ルールとログルールをもとに CSP ディレクティブを生成します。
- ログルール は
content-security-policy-report-onlyHTTP ヘッダーにディレクティブを追加し、リソースをブロックせずに違反を報告します。 - 許可ルール は
content-security-policyHTTP ヘッダーにディレクティブを追加し、許可リストにないリソースを実際にブロックします。
リソースモニタリング用のヘッダーとは異なり、これらの HTTP ヘッダーは各ルールで定義した式に一致するレスポンスにだけ適用され、サンプリングされません。これらのヘッダーは コンテンツセキュリティルール の設定で完全に制御できます。
Client-Side Security Advanced のお客様は、脅威フィードに基づく追加の分類機能を使え、スクリプトやスクリプトが行う接続が悪意のあるものかを判定できます。詳細は 悪意のあるスクリプトと接続の検出 を参照してください。
Client-side security とリソースモニタリングの背景は、ブログ記事 ↗ を参照してください。