Compare commits

...

2 Commits

Author SHA1 Message Date
pablodanswer
9f947079ab k 2024-12-12 12:34:13 -08:00
pablodanswer
69060cde10 security policies 2024-12-12 12:22:16 -08:00

View File

@@ -7,12 +7,57 @@ const version = env_version || package_version;
// Always require withSentryConfig
const { withSentryConfig } = require("@sentry/nextjs");
const cspHeader = `
style-src 'self' 'unsafe-inline';
font-src 'self';
object-src 'none';
base-uri 'self';
form-action 'self';
frame-ancestors 'none';
upgrade-insecure-requests;
`;
/** @type {import('next').NextConfig} */
const nextConfig = {
output: "standalone",
publicRuntimeConfig: {
version,
},
async headers() {
return [
{
source: "/(.*)",
headers: [
{
key: "Content-Security-Policy",
value: cspHeader.replace(/\n/g, ""),
},
{
key: "Strict-Transport-Security",
value: "max-age=63072000; includeSubDomains; preload",
},
{
key: "Referrer-Policy",
value: "strict-origin-when-cross-origin",
},
{
key: "X-Frame-Options",
value: "DENY",
},
{
key: "X-Content-Type-Options",
value: "nosniff",
},
{
key: "Permissions-Policy",
// Deny all permissions by default
value:
"accelerometer=(), ambient-light-sensor=(), autoplay=(), battery=(), camera=(), cross-origin-isolated=(), display-capture=(), document-domain=(), encrypted-media=(), execution-while-not-rendered=(), execution-while-out-of-viewport=(), fullscreen=(), geolocation=(), gyroscope=(), keyboard-map=(), magnetometer=(), microphone=(), midi=(), navigation-override=(), payment=(), picture-in-picture=(), publickey-credentials-get=(), screen-wake-lock=(), sync-xhr=(), usb=(), web-share=(), xr-spatial-tracking=()",
},
],
},
];
},
};
// Sentry configuration for error monitoring: