27 lines
1.0 KiB
JavaScript
27 lines
1.0 KiB
JavaScript
/** @type {import('next').NextConfig} */
|
|
const config = {
|
|
poweredByHeader: false,
|
|
serverExternalPackages: ['@node-rs/argon2', 'postgres', 'sharp'],
|
|
async headers() {
|
|
return [
|
|
{
|
|
source: '/:path*',
|
|
headers: [
|
|
{ key: 'X-Content-Type-Options', value: 'nosniff' },
|
|
{ key: 'X-Frame-Options', value: 'DENY' },
|
|
{ key: 'Referrer-Policy', value: 'same-origin' },
|
|
{ key: 'Permissions-Policy', value: 'camera=(), microphone=(), geolocation=()' },
|
|
{
|
|
key: 'Content-Security-Policy',
|
|
value:
|
|
"default-src 'self'; script-src 'self' 'unsafe-inline'" +
|
|
(process.env.NODE_ENV === 'development' ? " 'unsafe-eval'" : '') +
|
|
"; style-src 'self' 'unsafe-inline'; img-src 'self' https: blob: data:; font-src 'self'; connect-src 'self'; object-src 'none'; base-uri 'self'; frame-ancestors 'none'; form-action 'self'; worker-src 'self'",
|
|
},
|
|
],
|
|
},
|
|
];
|
|
},
|
|
};
|
|
export default config;
|