CSP(Content Security Policy)を強化した環境で Google Analytics(GA4)やGoogle Tag Manager(GTM)を安全に動かすのは、実務でも難易度が高いテーマです。
やりたいことは単純で、Express フレームワーク上に構築した Web アプリケーションに Google Analytics のような解析ツールを導入することです。
一見すると簡単に見えますが、実際に導入すると Tag Assistant が Not Connected になる問題がよく起こります。
スクリプトを貼り付けるだけなのにどうして・・・
結論から述べると CSP と Google ツールは正しく設定しないと設計通りに動作しません。
Google Analytics とそれに付随する Tag Assistant / GTM は iframe や postMessage などの動的スクリプト挿入を多用します。
一方 CSP は許可されたスクリプト以外は全てブロックする仕組みです。
なんか最初から仕様が衝突しているような印象を受けますが、何も考えずに導入すると Google ツールが CSP に妨害されて動作しないことがよく起こります。
これに対する対処として
‘unsafe-inline’
‘unsafe-eval’
を追加して解決する方法が提案されているのを目にしますが、これはセキュリティ的には後退です。
より安全で実務的な構成としては nonce + strict-dynamic のほうが適しているのではないかと思うわけです。
Continue reading “Express + CSP + GA4 + Tag Assistant が繋がらない問題”


