簡體   English   中英

nodeJS https-無法設置內容安全策略

[英]nodeJS https - unable to set Content-Security-Policy

我正在嘗試使用HTTPS和Express編寫一個簡單的NodeJS HTTPS Web服務器,該服務器具有可配置的Content-Security-Policy。

我嘗試在服務器響應對象中設置Content-Security-Policy標頭屬性,但始終只發送“ default-src'self'”。 看來HTTPS模塊會覆蓋我指定的內容。

我也嘗試過使用helmet-csp npm軟件包,也沒有成功。

這是我的代碼段:

var app = express();
var sslOptions = {
    cert: fs.readFileSync(ourPath + "/certs/server.crt"),
    key: fs.readFileSync(ourPath + "/certs/server.pem")
};
var httpsServer = https.createServer(sslOptions, app);

var server = httpsServer.listen(secPort /*443*/, function () {
    console.log('HTTPS Server listening at port %d', secPort);
});

// Trap the incoming request, and preset the CSP in the response header
server.on('request',(req,res)=>{
    res.setHeader("Content-Security-policy","* 'inline-eval';");
});

您只需要在HTTP標頭(而不是HTML)中進行設置即可。 這是帶有靜態服務器的express 4的工作示例:

 var express = require('express'); var app = express(); app.use(function(req, res, next) { res.setHeader("Content-Security-Policy", "script-src 'self' https://apis.google.com"); return next(); }); app.use(express.static(__dirname + '/')); app.listen(process.env.PORT || 3000); 

如果您想了解有關CSP的更多信息,這是一篇很棒的文章: http ://www.html5rocks.com/en/tutorials/security/content-security-policy/

希望有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM