23 lines
889 B
JavaScript
23 lines
889 B
JavaScript
const securityHeaders = [
|
|
{ key: "X-Content-Type-Options", value: "nosniff" },
|
|
{ key: "Referrer-Policy", value: "strict-origin-when-cross-origin" },
|
|
{ key: "X-Frame-Options", value: "DENY" },
|
|
{ key: "X-DNS-Prefetch-Control", value: "off" },
|
|
{ key: "Permissions-Policy", value: "camera=(), microphone=(), geolocation=()" },
|
|
{ key: "Cross-Origin-Resource-Policy", value: "same-origin" },
|
|
{
|
|
key: "Content-Security-Policy",
|
|
value: "default-src 'self'; base-uri 'self'; form-action 'self'; frame-ancestors 'none'; object-src 'none'; img-src 'self' data: blob:; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'; connect-src 'self'; worker-src 'self' blob:",
|
|
},
|
|
];
|
|
|
|
const nextConfig = {
|
|
output: "standalone",
|
|
poweredByHeader: false,
|
|
async headers() {
|
|
return [{ source: "/(.*)", headers: securityHeaders }];
|
|
},
|
|
};
|
|
|
|
export default nextConfig;
|