#javascript #html #security #content-security-policy
Вопрос:
У меня есть этот очень простой заголовок CSP, обратите внимание на script-src
директиву: default-src 'none'; script-src 'self'; script-src-elem 'self' https://www.example.com 'unsafe-inline'; style-src https://www.example.com 'unsafe-inline'; manifest-src 'self'; frame-ancestors 'self'; worker-src 'self'; connect-src 'self'; object-src 'none'; img-src 'self' data:;
Заголовок принимается как в Chrome, так и в Edge, но при загрузке приложения в Firefox генерируется следующее нарушение: Content Security Policy: The page’s settings blocked the loading of a resource at inline (“script-src”).
Почему Firefox не разрешает указанные директивы?
Комментарии:
1. Эти директивы выбрасывают всю передовую практику на свалку …
2. @Teemu, рассматривайте это как первый черновик
Ответ №1:
Firefox не поддерживает script-src-elem
директиву, поэтому он использует script-src 'self';
, которая не позволяет 'unsafe-inline'
.
Chrome поддерживает script-src-elem
директиву, поэтому он использует script-src-elem 'self' https://www.example.com 'unsafe-inline';
, которая позволяет 'unsafe-inline'
.
У меня нет браузера Edge для тестирования, но он основан на Хроме, поэтому должен поддерживать script-src-elem
.
Комментарии:
1. В этом есть смысл, спасибо. Пришлось переместить «небезопасный-встроенный» в директиву script-src, довольно небезопасно.