我正在使用 Helmet 在后端使用 Express 设置我的 Web 应用程序的内容安全策略。这些策略如下所示:
const express = require("express");
const app = express();
const helmet = require('helmet');
app.use(helmet());
app.use(
helmet.contentSecurityPolicy({
directives: {
defaultSrc: ["'self'"],
scriptSrc: ["'self'", "https://ajax.googleapis.com"],
imgSrc: ["https://firebasestorage.googleapis.com"],
objectSrc: ["'none'"],
styleSrc: ["'self'", "https://maxcdn.bootstrapcdn.com/bootstrap", "https://www.w3schools.com"],
upgradeInsecureRequests: [],
},
})
);
当我的应用程序尝试访问诸如https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css
. 它说它违反了 styleSrc 政策。但是我已经指定了https://maxcdn.bootstrapcdn.com/bootstrap
允许的策略之一,我认为这https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css
也会被接受,因为它是一个子 src。但显然它被阻止了。那我该如何让孩子 src 通过呢?我试过https://maxcdn.bootstrapcdn.com/bootstrap*
了,但是无效。