CSP for AMP Project
Using AMP Project with Content Security Policy
AMP is an open source HTML framework developed by the AMP Open Source Project. It was originally created by Google as a competitor to Facebook Instant Articles.
Allow these directives in your CSP, to support AMP Project in your Content Security Policy:
frame-ancestors
*.ampproject.org
about:;
script-src
https://cdn.ampproject.org;
style-src
'unsafe-inline'
cdn.ampproject.org;
frame-src
*.ampproject.net;
child-src
blob:;
img-src
data:
blob:
*.ampproject.org;
font-src
data:;
connect-src
data:
cdn.ampproject.org
*.ampproject.net
ampcid.google.com;
worker-src
blob:;
The main domains used by AMP Project are:
ampproject.org
ampproject.net
google.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://cdn.ampproject.org/v0/amp-ad-0.1.js' 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 'https://cdn.ampproject.org/amp-story-player-v*.css?ver=v*' 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 'ampproject.org' because it violates the following Content Security Policy directive: "font-src 'self'"
img-src
violations
Refused to load the image 'ampproject.org' because it violates the following Content Security Policy directive: "img-src 'self'".
frame-src
violations
[Report Only] Refused to frame 'ampproject.org' because it violates the following Content Security Policy directive: "frame-src 'self'".
form-action
violations
[Report Only] Refused to send form data to 'ampproject.org' because it violates the following Content Security Policy directive: "form-action 'self'".
connect-src
violations
[Report Only] Refused to connect to 'ampproject.org' because it violates the following Content Security Policy directive: "connect-src 'self'"