- 重要な情報
- はじめに
- 用語集
- ガイド
- エージェント
- インテグレーション
- OpenTelemetry
- 開発者
- API
- CoScreen
- アプリ内
- Service Management
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
Datadog Content Security Policy (CSP) インテグレーションは、Web ブラウザが CSP を解釈して違反を検出すると、そのログを Datadog に送信します。CSP インテグレーションを使用すると、CSP データを集計するための専用エンドポイントをホストまたは管理する必要がありません。
CSP の詳細については、Content-Security-Policy を参照してください。
CSP ヘッダーにディレクティブを追加する前に、Datadog アカウントでクライアントトークンを生成します。
ブラウザがポリシー違反のレポートを送信できる URL が必要です。URL は以下の形式である必要があります。
https://csp-report./api/v2/logs?dd-api-key=<client -token>&dd-evp-origin=content-security-policy&ddsource=csp-report
オプションとして、URL に ddtags
キー (サービス名、環境、サービスバージョン) を追加して、統合サービスタグ付けを設定します。
env
: アプリケーションの環境。service
: アプリケーションのサービス名。version
: アプリケーションのバージョン。ddtags
の値をフォーマットする場合、以下を行う必要があります。
:
) でグループ化する,
) で連結する例えば、キーと値のペア {"service": "billingService", "env": "production"}
の場合、URL エンコードされた文字列は次のようになります。
service%3AbillingService%2Cenv%3Aproduction
そして、タグを使った最終的な URL はこうなります。
https://csp-report.browser-intake-datadoghq.com/api/v2/logs?dd-api-key=<client -token>&dd-evp-origin=content-security-policy&ddsource=csp-report&ddtags=service%3AbillingService%2Cenv%3Aproduction
HTTP ヘッダーに URL を埋め込むか (推奨)、<meta>
HTML タグに埋め込むことができます。
Datadog は、HTTP ヘッダーにコンテンツセキュリティポリシーを埋め込むことを推奨しています。report-uri
ディレクティブまたは report-to
ディレクティブのどちらかを使用することができます。report-to
ディレクティブは最終的には report-uri
に取って代わりますが、まだすべてのブラウザでサポートされているわけではありません。
report-uri
ディレクティブを使用している場合
Content-Security-Policy: ...; report-uri https://csp-report.browser-intake-datadoghq.com/api/v2/logs?dd-api-key=<client -token>&dd-evp-origin=content-security-policy&ddsource=csp-report
report-to
ディレクティブを使用している場合
Content-Security-Policy: ...; report-to browser-intake-datadoghq
Report-To: { "group": "browser-intake-datadoghq",
"max_age": 10886400,
"endpoints": [
{ "url": " https://csp-report.browser-intake-datadoghq.com/api/v2/logs?dd-api-key=<client -token>&dd-evp-origin=content-security-policy&ddsource=csp-report" }
] }
<meta>
に埋め込まれたポリシーまた、<meta>
HTML タグの中に URL を埋め込むこともできます。
<meta http-equiv="Content-Security-Policy"
content="...; report-uri 'https://csp-report.browser-intake-datadoghq.com/api/v2/logs?dd-api-key=<client -token>&dd-evp-origin=content-security-policy&ddsource=csp-report'">
各ブラウザは、レポートの形式を異なる方法で解釈します。
{
'csp-report': {
'blocked-uri': 'https://evil.com/malicious.js',
'document-uri': 'http://localhost:8000/',
'original-policy': 'script-src http://good.com; report-uri http://127.0.0.1:8000/csp_reports',
referrer: '',
'violated-directive': 'script-src'
}
}
{
'csp-report': {
'document-uri': 'http://localhost:8000/',
referrer: '',
'violated-directive': 'script-src-elem',
'effective-directive': 'script-src-elem',
'original-policy': 'trusted-types toto; script-src good.com; report-uri http://127.0.0.1:8000/csp_reports',
disposition: 'enforce',
'blocked-uri': 'https://evil.com/malicious.js',
'status-code': 200,
'script-sample': ''
}
}
{
'csp-report': {
'document-uri': 'http://localhost:8000/',
referrer: '',
'violated-directive': 'script-src good.com',
'effective-directive': 'script-src',
'original-policy': 'trusted-types toto; script-src good.com; report-uri http://127.0.0.1:8000/csp_reports',
'blocked-uri': 'https://evil.com',
'status-code': 200
}
}
Web サイトで CSP を使用する場合は、ユースケースに応じて、以下の URL を既存のディレクティブに追加してください。
リアルユーザーモニタリング]4またはブラウザログ収集の初期化に使用した site
オプションに応じて、適切な connect-src
エントリを追加してください。
connect-src https://*.
セッションリプレイを使用している場合、以下の worker-src
エントリを追加して blob:
URI スキームを持つワーカーを許可するようにしてください。
worker-src blob:;
リアルユーザーモニタリングまたはブラウザログ収集で CDN 非同期または CDN 同期の設定を使用している場合、以下の script-src
項目も追加してください。
script-src https://www.datadoghq-browser-agent.com
お役に立つドキュメント、リンクや記事: