在Node.js/Express.js服务器代码中添加了内容安全策略,然后将其删除,但Google Chrome仍在阻止内容

在Node.js/Express.js服务器代码中添加了内容安全策略,然后将其删除,但Google Chrome仍在阻止内容,node.js,express,content-security-policy,Node.js,Express,Content Security Policy,注意:在下面的编辑部分修订了该版本 我一直在学习内容安全策略,试图学习各种安全概念,因为我正在从头开始构建一个网站。我意识到这可能不是一个大问题,因为我不会收到任何用户输入,但是我想学习这些概念,并开始应用它们来防止我的站点受到Javascript注入之类的攻击 在我的server.js文件中,我通过Express以以下代码提供我的页面: app.get("/", (req, res) => { res.sendFile(path.join(__dirname, "/views/h

注意:在下面的编辑部分修订了该版本

我一直在学习内容安全策略,试图学习各种安全概念,因为我正在从头开始构建一个网站。我意识到这可能不是一个大问题,因为我不会收到任何用户输入,但是我想学习这些概念,并开始应用它们来防止我的站点受到Javascript注入之类的攻击

在我的
server.js
文件中,我通过Express以以下代码提供我的页面:

app.get("/", (req, res) => {
    res.sendFile(path.join(__dirname, "/views/home.html"));
});
要将内容安全策略(CSP)添加到我的服务器代码中,我在上述代码之前添加了以下代码,以及在使用Express服务静态文件之前:

//the following code is called right after the creation of the express server

app.use(function(req, res, next) {
    res.setHeader("Content-Security-Policy", "default-src 'self'; script-src 'self' https://apis.google.com");
    return next();
});

//static css/js/img files served here:
app.use('/public', express.static(__dirname + '/public'));

//then the app.get method I defined above
我重新启动了我的节点服务器,打开了chrome,去了我的节点网站监听的地方,正如预期的那样,我的主页没有加载我项目中的各种外部脚本、CDN和外部样式

在看到CSP工作后,我决定删除整个
应用程序。使用设置CSP的
函数,这样我就可以创建指令列表,以便以后添加CSP

我删除了该代码块,保存并重新启动了节点服务器,当我打开Google Chrome时,我仍然在Chrome开发工具的安全选项卡下收到通知,说我的所有外部内容都被阻止,原因是违反了
“default src'self'”
“script src'self'
指令,这是我从服务器文件中删除上述CSP代码后的。然而,当我在Safari中打开我的应用程序时,一切都加载良好。为什么即使我删除了在服务器代码的HTTP头中设置CSP的代码,Chrome仍然阻止内容

编辑:我最终重置了我的Chrome设置,解决了这个问题。但是,我不确定现在在Chrome中使用哪个设置,而不是重置所有设置。很明显,CSP只应用于该实例中的主页,我需要在每个html页面的GET方法中设置CSP,是吗