Helmet CSP 在 Safari 浏览器中不工作
Helmet CSP Not Working in Safari Browsers
其他人是否对 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 中遇到了这些错误。
Safari Errors
Safari 要求您指定方案,因为它不允许根据规范升级到 https
。相反,它默认为当前页面的方案 - 我假设您正在 http
上查看页面。我不指定 http
,而是指定:
styleSrc: ["'self'","'unsafe-inline'",'https://fonts.googleapis.com','https://cdnjs.cloudflare.com'],
或要求https
用于所有流量。不要在您的政策中使用 http:
方案 :smile:
这可能已在最新版本的 safari 上修复(尚未测试),但这不会改变我的建议(这样你就不会破坏东西)。
其他人是否对 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 中遇到了这些错误。
Safari Errors
Safari 要求您指定方案,因为它不允许根据规范升级到 https
。相反,它默认为当前页面的方案 - 我假设您正在 http
上查看页面。我不指定 http
,而是指定:
styleSrc: ["'self'","'unsafe-inline'",'https://fonts.googleapis.com','https://cdnjs.cloudflare.com'],
或要求https
用于所有流量。不要在您的政策中使用 http:
方案 :smile:
这可能已在最新版本的 safari 上修复(尚未测试),但这不会改变我的建议(这样你就不会破坏东西)。