getHttpHost() . ':*'; $authorizedAddresses[] = 'http://127.0.0.1:*'; $authorizedAddresses[] = 'ws://127.0.0.1:*'; } $authorizedAddresses = implode(' ', $authorizedAddresses); $directives['script-src'] = "script-src 'nonce-" . Vite::cspNonce() . "' 'wasm-unsafe-eval' 'strict-dynamic'"; $directives['style-src'] = "style-src 'self' " . $authorizedAddresses . " 'unsafe-inline'"; $directives['connect-src'] = "connect-src 'self' " . $authorizedAddresses; $directives['img-src'] = "img-src 'self' data: " . $authorizedAddresses; $directives['object-src'] = "object-src 'none'"; $directives['default-src'] = "default-src 'self'"; // This one is to allow eval used by the vue devtools extension if (config('app.env') === 'development') { $directives['script-src'] .= " 'unsafe-eval'"; } $csp = implode('; ', $directives); /** @disregard Undefined function */ /** @phpstan-ignore-next-line */ return $next($request)->withHeaders([ 'Content-Security-Policy' => $csp, ]); } return $next($request); } }