javascript - Stripe Connect : Content Security Policy issue
Solution:
Your CSP has a lot of errors:
You have missed semicolons
;
to separatescript-src
/connect-src
/frame-src
directives lists.:
is nor required in theconnect-src : * ...
and in theframe-src : * ...
Remove
'unsafe-inline'
and'unsafe-eval'
from theconnect-src
andframe-src
directives, those are not supported thereThe
*
(asterisk) covers any host-sources likehttps://checkout.stripe.com
andwss://checkout.stripe.com
BUT these are not significant, these just leads the CSP you have really is:
default-src *;
style-src 'self' 'unsafe-inline';
script-src * 'self' 'unsafe-inline' 'unsafe-eval'
This CSP restrict nothing except data:
-Urls usage. Therefore the error:
Content Security Policy: The page’s settings blocked the loading of a resource at inline (“script-src”)
cannot belong your CSP.
Looks like you already have CSP header published somewhere. Hence second CSP via <meta>
or HTTP header does not have effect as expected.
Check what CSP header you really have got in browser, the tutorial is here.
Check web-server config in Nginx for add_header Content-Security-Policy ...
or .htaccess
file (if Apache) for Header set Content-Security-Policy ...
presence.
Or maybe you have installed some plugins for managing CSP headers.
Answer
Solution:
You're missing img-src https://*.stripe.com
described in the Stripe documentation.
Also the asterisk character alone doesn't work as "any resource" (example of incorrect use in your code: default-src *
). You need to use it as part of the <host-source>
(e.g. *.example.com
). See MDN docs for more details.