还有其他人在Safari中使用Helmet的内容安全策略有任何问题吗?
https://github.com/helmetjs/helmet
app.use(helmet.contentSecurityPolicy({
directives: {
defaultSrc: ["'self'"],
scriptSrc: ["'self'",'code.jquery.com','cdnjs.cloudflare.com'],
styleSrc: ["'self'","'unsafe-inline'",'fonts.googleapis.com','cdnjs.cloudflare.com'],
imgSrc: ["'self'"],
fontSrc: ['fonts.googleapis.com','fonts.gstatic.com','cdnjs.cloudflare.com'],
connectSrc: [],
},
reportOnly:false,
setAllHeaders: false,
disableAndroid: false
}));

这适用于Chrome,Firefox和IE。但是我在Safari中遇到了这些错误。
答案 0 :(得分:2)
Safari要求您指定方案,因为它不允许根据规范升级到https
。相反,它默认为当前页面的方案 - 我假设您正在http
上查看该页面。我没有允许http
,而是指定:
styleSrc: ["'self'","'unsafe-inline'",'https://fonts.googleapis.com','https://cdnjs.cloudflare.com'],
或所有流量需要https
。请勿在您的政策中使用http:
计划:smile:
这可能会在最新版本的safari(未经测试)上修复,但这不会改变我对该做什么的建议(所以你不要破坏它)。