头盔CSP不能在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错误
Safari要求您指定该scheme,因为它不允许根据规范升级到https
。 相反,它默认为当前页面的scheme – 我假设你在http
上查看页面。 而不是允许http
,我会指定:
styleSrc: ["'self'","'unsafe-inline'",'https://fonts.googleapis.com','https://cdnjs.cloudflare.com'],
或者要求所有stream量都使用https
。 不要在您的政策中使用http:
scheme:smile:
这可能是最新版本的safari(尚未testing),但这不会改变我的build议,做什么(所以你不要破坏的东西)。