2016-08-07 8 views
1

У кого-либо еще были проблемы с политикой безопасности содержимого Helmet в Safari?Шлем CSP не работает в браузере Safari

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 Errors

ответ

1

Safari требует, чтобы указать схему, поскольку она не позволяет модернизацию https в спецификации. Вместо этого по умолчанию используется схема текущей страницы - я предполагаю, что вы просматриваете страницу на http. Вместо того, чтобы позволить http, я бы уточнить:

styleSrc: ["'self'","'unsafe-inline'",'https://fonts.googleapis.com','https://cdnjs.cloudflare.com'], 

ИЛИ требуют https для всего трафика. Не используйте схему http: в вашей политике: smile:

Это может быть исправлено в последней версии сафари (не проверено), но это не изменило бы моего предложения о том, что делать (так что вы не делаете этого, t сломать вещи).

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

+0

Это было! Спасибо за решение! – user3183411

+0

@ user3183411 принять ответ? – oreoshake

 Смежные вопросы

  • Нет связанных вопросов^_^