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-srcdirectives lists.:is nor required in theconnect-src : * ...and in theframe-src : * ...Remove
'unsafe-inline'and'unsafe-eval'from theconnect-srcandframe-srcdirectives, those are not supported thereThe
*(asterisk) covers any host-sources likehttps://checkout.stripe.comandwss://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.