Content Security Policy と gtag.js のエラー

こんにちは、

当フォーラム(https://forum.playcanvas.com/)で以下のエラーが発生しています。

Content Security Policy ディレクティブ 'script-src' のソースリストに、無効なパスを含むソースが含まれています:'/gtag/js?id=UA-XXXXXXXX-X'。クエリコンポーネント('?' を含む)は無視されます。

CSP 設定にはその URL を追加していません。Discourse 側で自動的に追加されているものと思われますが、CSP ではクエリコンポーネントが無効なのではないかと推測しています。

解決策をご存じでしょうか?

Google タグマネージャーの設定はどのように行いましたか?Discourse の組み込み機能を使用していますか、それともテーマのコンポーネントにカスタムコードを追加しましたか?

カスタムテーマコンポーネントに https://www.googletagmanager.com/gtag/js?id=U_XXX… を手動で含めています。以前は組み込みの Discourse 方法を使用していましたが、分析コードが読み込まれる前に呼び出す必要がある追加の gtag メソッドを追加する必要があるため、それを削除しました。

もしかすると、その CSP は組み込み方法を使用していた際に設定されたもので、何らかの理由で現在では削除されていないのでしょうか?

なるほど。これは1月に修正された既存のバグのようです。

FIX: Do not include URL query in auto-generated CSP header (#11673) · discourse/discourse@b008836 · GitHub

この修正は stable ブランチにはバックポートされていないため、tests-passed にアップデートするか、次の stable リリースを待つ必要があります。当面は表示される警告は無視しても問題ありません。ブラウザが自動的に URL のクエリ部分を削除してくれます。

ああ、なるほど!わかりました、ありがとう!