Skip to content

Commit

Permalink
Added content security policy.
Browse files Browse the repository at this point in the history
  • Loading branch information
mikecao committed Aug 1, 2022
1 parent 2b7da33 commit adb069b
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 9 deletions.
10 changes: 1 addition & 9 deletions middleware.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,14 +33,6 @@ function customScriptName(req) {
}
}

function forceSSL(req, res) {
if (process.env.FORCE_SSL && req.nextUrl.protocol === 'http:') {
res.headers.set('Strict-Transport-Security', 'max-age=31536000; includeSubDomains');
}

return res;
}

export default function middleware(req) {
const fns = [customCollectEndpoint, customScriptName];

Expand All @@ -51,5 +43,5 @@ export default function middleware(req) {
}
}

return forceSSL(req, NextResponse.next());
return NextResponse.next();
}
35 changes: 35 additions & 0 deletions next.config.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,37 @@
require('dotenv').config();
const pkg = require('./package.json');

const contentSecurityPolicy = `
default-src 'self';
img-src *;
script-src 'self' 'unsafe-eval';
style-src 'self' 'unsafe-inline';
connect-src 'self' api.umami.is;
frame-ancestors 'self';
`;

const headers = [
{
key: 'X-DNS-Prefetch-Control',
value: 'on',
},
{
key: 'X-Frame-Options',
value: 'SAMEORIGIN',
},
{
key: 'Content-Security-Policy',
value: contentSecurityPolicy.replace(/\s{2,}/g, ' ').trim(),
},
];

if (process.env.FORCE_SSL) {
headers.push({
key: 'Strict-Transport-Security',
value: 'max-age=63072000; includeSubDomains; preload',
});
}

module.exports = {
env: {
currentVersion: pkg.version,
Expand All @@ -24,6 +55,10 @@ module.exports = {
},
async headers() {
return [
{
source: '/:path*',
headers,
},
{
source: `/(.*\\.js)`,
headers: [
Expand Down

0 comments on commit adb069b

Please sign in to comment.