Skip to content

Instantly share code, notes, and snippets.

@AaronSadlerUK
Created October 13, 2023 13:17
Show Gist options
  • Save AaronSadlerUK/cbc539f4b1bfab23a39269cfe33b4208 to your computer and use it in GitHub Desktop.
Save AaronSadlerUK/cbc539f4b1bfab23a39269cfe33b4208 to your computer and use it in GitHub Desktop.
Google Tag Manager Nonce
<script id="gtmScript" data-nonce="@Html.CspScriptNonceValue()">
(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 =
'https://www.googletagmanager.com/gtm.js?id=' + i + dl; var n = d.querySelector('[nonce]');
n && j.setAttribute('nonce', n.nonce || n.getAttribute('nonce')); f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'dataLayer', '###-#######');</script>
<!-- End Google Tag Manager -->
@FrancoisDF
Copy link

Do we have a more secure solution today? having the nonce as clear text in the app.html sounds quite unsecure to me. Any other script could pick it up, then use it to load its own script.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment