1

セキュリティ上の理由から、アプリケーションのContent Security Policyヘッダーからunsafe-evalを削除する必要があります。しかし、それを削除した後、我々は我々が同様script-srcに「https://www.googletagmanager.com」ドメインを追加したCSPCSPヘッダーからunsafe-evalを削除した後のGoogleタグマネージャコンソールのエラー

によってブロック

のeval()の呼び出しまたは関連する機能を言うのコンソールエラーを取得し、まだそれエラーが表示されます。

Googleタグマネージャドメインにはunsafe-evalを許可する方法はありますか?それとも他の選択肢がありますか?

サンプルアナリティックコードスニペットは、その下にある私たちのスクリプトで使用

(function (w, d, s, l, i) { 
    w[l] = w[l] || []; w[l].push({ 
     'gtm.start': 
      new Date().getTime(), event: 'gtm.js' 
    }); var f = d.getElementsByTagName(s)[0], 
      j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 
       '//www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); 
})(window, document, 'script', 'dataLayer', 'GTM-123456'); 

答えて

2

this Lunametrics articleによるGTMはjavascriptの変数のカスタムのためのevalを使用しています:あなたのスクリプトが実行されてもよい

[...]その結果、 がカスタムJavaScript変数 の追加eval()になるため、引数を

に渡すことになります。実際に

私は次のコードは、gtm.jsファイルに追加される前に、いずれかを持っていなかったコンテナにカスタムJS変数を追加します(中のevalの使用を注意してください

// Copyright 2012 Google Inc. All rights reserved. 
// Container Version: QUICK_PREVIEW 
(function(w,g){w[g]=w[g]||{};w[g].e=function(s){return eval(s);};})(window,'google_tag_manager');(function(){ 

var __c;__c=function(a){return a["39"]};__c.a="c";__c.b=["google"];__c.isVendorTemplate=!0; 

コメントの後の最初の行)。

したがって、カスタムjavascript変数を使用せずに安全な評価を削除すると、になる可能性があります。

+0

タグマネージャに使用するコードスニペットを含めて投稿を更新しました。私たちがあなたの提案と一緒に行くことができるかどうかは分かりません。 – Hasantha

+0

混乱を避けるために - コードを追加することはお勧めしません。カスタムjavascript変数を使用している場合、gtm.jsファイルにGoogle *が自動的に* eval呼び出しを追加することを指摘していました。ですから、あなたのcspがカスタムjavascript変数なしでコンテナ内で動作するかどうかを試してみるといいでしょう。 –

+0

私が使用したjavascriptコードを_layoutファイルに含めて質問を更新しました。 – Hasantha

関連する問題