我有一個Express應用程式,它提供了一些靜態檔案。我能夠添加Strict-Transport-Security頭,但是當我試圖添加更多的頭時,(X-Frame-Options和Content-Security-Policy)Express并沒有將它們添加到回應中。
我正在使用Express 4.17.1,我的server.js如下。
const express = require('express')。
const path = require('path')。
const port = process.env.PORT || 8080。
const app = express()。
if (process.env.NODE_ENV !== "development" ) {
app.use(function(req, res, next) {
res.setHeader('Strict-Transport-Security', 'max-age=63072000; includeSubDomains; preload')。
next()。
});
}
app.use(function(req, res, next) {
res.setHeader('X-Frame-Options', 'DENY') 。
res.setHeader('Content-Security-Policy', "frame-src 'none';" /span>
"object-src 'none';".
"script-src 'self'; "
"style-src 'self' "
);
next()。
});
app.use('/dist', express. static(path.join(__dirname, 'dist'));
app.get('*', (req, res) => /span> {
res.sendFile(path.resolve(__dirname, 'dist/index.html'/span>))。
});
app.listen(port)。
uj5u.com熱心網友回復:
使用作為換行符是無效的語法。你可以用 代替它們,或者用反斜線將Content-Security-Policy頭的值合并成一個字串,比如說
其余的標頭都可以使用,只是要記住,你一次只能對一個標頭使用res.setHeader。See https://stackoverflow.com/a/40841390/3499115
app.use(function(req, res, next) {
res.setHeader('X-Frame-Options', 'DENY') 。
res.setHeader('Content-Security-Policy', `frame-src 'none'; object-src 'none'; script-src 'self'; style-src 'self';`)。
next()。
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/310194.html
標籤:
