头盔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错误

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议,做什么(所以你不要破坏的东西)。

https://twitter.com/Scott_Helme/status/642630334983614464