CSP for Google Tag Manager
Using Google Tag Manager with Content Security Policy
The most popular Tag manager in the world - will inject any tag/script into your site, as defined in the Google configurations. Note that it may require you to additionally add 'unsafe-inline' / 'unsafe-eval' based on your usage.
Allow these directives in your CSP, to support Google Tag Manager in your Content Security Policy:
script-src
https://www.googletagmanager.com
https://googletagmanager.com
https://tagmanager.google.com;
style-src
www.googletagmanager.com
tagmanager.google.com;
frame-src
www.googletagmanager.com;
child-src
www.googletagmanager.com;
img-src
data:
www.googletagmanager.com;
font-src
data:;
connect-src
www.googletagmanager.com;
The main domains used by Google Tag Manager are:
googletagmanager.com
Sources:
Example Content-Security-Policy violations / reports:
Using the above CSP package, will fix these errors that you may be seeing in your console logs:
script-src
/script-src-elem
/script-src-attr
violations
Refused to load the script 'https://www.googletagmanager.com/gtm.js?id=GTM-*' because it violates the following Content Security Policy directive: "script-src 'self' 'report-sample'". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback.
If you see inline script errors, you need to add SHA-256 hashes / nonces to your CSP with RapidSec:
Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self' 'report-sample'". Either the 'unsafe-inline' keyword, a hash ('sha256-RFWPLDbv2BY+rCkDzsE+0fr8ylGr2R2faWMhq4lfEQc='), or a nonce ('nonce-...') is required to enable inline execution.
If you see inline eval() errors, RapidSec will generate your CSP with the specific content of the errors:
Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "script-src 'self' 'report-sample'".
style-src
/style-src-elem
/style-src-attr
violations
Refused to load the stylesheet 'googletagmanager.com' because it violates the following Content Security Policy directive: "style-src 'self' 'report-sample'". Note that 'style-src-elem' was not explicitly set, so 'style-src' is used as a fallback.
If you see inline style errors, you need to add SHA-256 hashes / nonces to your CSP with RapidSec:
Refused to apply inline style because it violates the following Content Security Policy directive: "style-src 'self' 'report-sample'". Either the 'unsafe-inline' keyword, a hash ('sha256-RFWPLDbv2BY+rCkDzsE+0fr8ylGr2R2faWMhq4lfEQc='), or a nonce ('nonce-...') is required to enable inline execution.
font-src
violations
Refused to load the font 'googletagmanager.com' because it violates the following Content Security Policy directive: "font-src 'self'"
img-src
violations
Refused to load the image 'googletagmanager.com' because it violates the following Content Security Policy directive: "img-src 'self'".
frame-src
violations
[Report Only] Refused to frame 'googletagmanager.com' because it violates the following Content Security Policy directive: "frame-src 'self'".
form-action
violations
[Report Only] Refused to send form data to 'googletagmanager.com' because it violates the following Content Security Policy directive: "form-action 'self'".
connect-src
violations
[Report Only] Refused to connect to 'googletagmanager.com' because it violates the following Content Security Policy directive: "connect-src 'self'"