Merge pull request #4344 from brunnre8/csp
Force CSP headers for all requests
This commit is contained in:
commit
fd730eeeb1
@ -50,6 +50,7 @@ module.exports = function (options = {}) {
|
||||
app.set("env", "production")
|
||||
.disable("x-powered-by")
|
||||
.use(allRequests)
|
||||
.use(addSecurityHeaders)
|
||||
.get("/", indexRequest)
|
||||
.get("/service-worker.js", forceNoCacheRequest)
|
||||
.get("/js/bundle.js.map", forceNoCacheRequest)
|
||||
@ -286,14 +287,7 @@ function allRequests(req, res, next) {
|
||||
return next();
|
||||
}
|
||||
|
||||
function forceNoCacheRequest(req, res, next) {
|
||||
// Intermittent proxies must not cache the following requests,
|
||||
// browsers must fetch the latest version of these files (service worker, source maps)
|
||||
res.setHeader("Cache-Control", "no-cache, no-transform");
|
||||
return next();
|
||||
}
|
||||
|
||||
function indexRequest(req, res) {
|
||||
function addSecurityHeaders(req, res, next) {
|
||||
const policies = [
|
||||
"default-src 'none'", // default to nothing
|
||||
"base-uri 'none'", // disallow <base>, has no fallback to default-src
|
||||
@ -317,10 +311,22 @@ function indexRequest(req, res) {
|
||||
policies.push("img-src http: https: data:");
|
||||
}
|
||||
|
||||
res.setHeader("Content-Type", "text/html");
|
||||
res.setHeader("Content-Security-Policy", policies.join("; "));
|
||||
res.setHeader("Referrer-Policy", "no-referrer");
|
||||
|
||||
return next();
|
||||
}
|
||||
|
||||
function forceNoCacheRequest(req, res, next) {
|
||||
// Intermittent proxies must not cache the following requests,
|
||||
// browsers must fetch the latest version of these files (service worker, source maps)
|
||||
res.setHeader("Cache-Control", "no-cache, no-transform");
|
||||
return next();
|
||||
}
|
||||
|
||||
function indexRequest(req, res) {
|
||||
res.setHeader("Content-Type", "text/html");
|
||||
|
||||
return fs.readFile(
|
||||
path.join(__dirname, "..", "client", "index.html.tpl"),
|
||||
"utf-8",
|
||||
|
Loading…
Reference in New Issue
Block a user