@@ -26,25 +26,14 @@ export function middleware(request: NextRequest) {
2626 const PROFILE_DEFAULT_IMAGES_URL = process . env . PROFILE_DEFAULT_IMAGES_URL ;
2727 const PROFILE_UPLOADED_IMAGES_URL = process . env . PROFILE_UPLOADED_IMAGES_URL ;
2828
29- /*
30- * CSP Notes
31- * - Next.js next/image currently causes an inline style CSP error.
32- * There is a work around available, however at this time, we've opted
33- * to use 'unsafe-inline' to match what's in fxa-payments-server
34- * https://github.com/vercel/next.js/issues/45184
35- */
3629 const nonce = Buffer . from ( crypto . randomUUID ( ) ) . toString ( 'base64' ) ;
3730 const cspHeader = `
3831 default-src 'self';
3932 connect-src 'self' https://api.stripe.com ${ PAYPAL_API_URL } ;
40- frame-src https://js.stripe.com https://hooks.stripe.com ${ PAYPAL_API_URL } ${ PAYPAL_SCRIPT_URL } ;
41- script-src 'self' 'nonce-${ nonce } ' 'strict-dynamic' https: http: 'unsafe-inline' ${
42- process . env . NODE_ENV === 'production' ? '' : `'unsafe-eval'`
43- } https://js.stripe.com ${ PAYPAL_SCRIPT_URL } ;
44- script-src-elem 'self' 'nonce-${ nonce } ' 'strict-dynamic' https: http: 'unsafe-inline' ${
45- process . env . NODE_ENV === 'production' ? '' : `'unsafe-eval'`
46- } https://js.stripe.com;
47- style-src 'self' 'unsafe-inline';
33+ frame-src https://*.js.stripe.com https://js.stripe.com https://hooks.stripe.com ${ PAYPAL_API_URL } ${ PAYPAL_SCRIPT_URL } ;
34+ script-src 'self' 'nonce-${ nonce } ' ${ process . env . NODE_ENV === 'production' ? '' : `'unsafe-eval'`
35+ } https://*.js.stripe.com https://js.stripe.com ${ PAYPAL_SCRIPT_URL } ;
36+ style-src 'self' 'unsafe-hashes' 'sha256-0hAheEzaMe6uXIKV4EehS9pu1am1lj/KnnzrOYqckXk=' 'sha256-GsQC5AaXpdCaKTyWbxBzn7nitfp0Otwn7I/zu0rUKOs=' 'sha256-zlqnbDt84zf1iSefLU/ImC54isoprH/MRiVZGskwexk=';
4837 img-src 'self' blob: data: ${ accountsStaticCdn } ${ PAYPAL_OBJECTS } ${ PROFILE_CLIENT_URL } ${ PROFILE_DEFAULT_IMAGES_URL } ${ PROFILE_UPLOADED_IMAGES_URL } ;
4938 font-src 'self';
5039 object-src 'none';
0 commit comments