nodeJS - 我可以在哪里放置内容安全策略

use*_*410 8 html javascript node.js content-security-policy

我找到了这个CSP片段,但我不知道将它放在HTML中的哪个位置.

Content-Security-Policy: script-src 'self' https://apis.google.com
Run Code Online (Sandbox Code Playgroud)

解?

var policy = "default-src 'self'";
http.createServer(function (req, res) {
    res.writeHead(200, {
        'Content-Security-Policy': policy
    });
});
Run Code Online (Sandbox Code Playgroud)

小智 10

您只需要在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);
Run Code Online (Sandbox Code Playgroud)

如果您想了解有关CSP的更多信息,这是一篇非常好的文章:http://www.html5rocks.com/en/tutorials/security/content-security-policy/

希望有所帮助!

  • 如果有此帮助,这里是我正在使用的Express中间件层,以易于更新的方式设置CSP标头-https://medium.com/@mdp/csp-in-express-js-node-157d040f2f00 (2认同)