Песочница CSP от обслуживающего персонала - PullRequest
1 голос
/ 27 мая 2020

Я обслуживаю локально сгенерированный ненадежный контент в iframe от сервис-воркера.

Я пытаюсь полностью заблокировать iframe, чтобы он мог загружать ресурсы только из своего srcdo c, который перехватывается обслуживающим персоналом. Это означает отсутствие img et c. с любого другого домена, но разрешающего javascript.

Для этого я добавляю CSP: sandbox allow-scripts; default-sr c "собственные" данные :; script-sr c 'self' 'небезопасный встроенный'; на всех активах, обслуживаемых сервис-воркером, включая iframe root.

Загрузка документа iframe root работает нормально. Но загрузка изображения в iframe с относительным URL-адресом, таким образом, из того же источника, не влияет на сервис-воркер, а попадает в родительский домен и, таким образом, получает 404. Если я удалю свойство песочницы из CSP, тогда изображение загружается, но я теряю безопасность.

Есть способ заставить это работать? Здесь у меня есть демонстрация: https://ianopolous.github.io/sandbox

Я применяю заголовки CSP в сервисном работнике здесь: https://github.com/ianopolous/sandbox/blob/gh-pages/sw.js#L119

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...