Nano Hash - криптовалюты, майнинг, программирование

Возможно ли, чтобы CSP применялся только к родительскому фрейму, а не к любым фреймам?

Если у меня есть веб-страница с CSP, настроенным на:

default-src 'self'; img-src *

Или подобное, и у меня есть такой iframe:

some legal content
<iframe sandbox="allow-scripts" srcdoc="&lt;script>alert('arbitrary code')&lt;/script>"></iframe>

Можно ли разрешить коду в iframe не подчиняться CSP родительского фрейма и разрешать встроенные сценарии/стили, контент из других доменов или любые другие произвольные HTML-вещи, которые не нарушают ограничения песочницы?

В настоящее время это даст:

[Ошибка] Отказано в выполнении встроенного сценария, поскольку он нарушает следующую директиву политики безопасности содержимого: «default-src 'self'». Обратите внимание, что «script-src» не был задан явно, поэтому «default-src» используется как запасной вариант. (о: srcdoc, строка 1)

спецификация CSP подтверждает, что это правильное поведение:

Всякий раз, когда пользовательский агент создает документ iframe srcdoc в контексте просмотра, вложенном в защищенный ресурс, если пользовательский агент применяет любые политики для защищенного ресурса, пользовательский агент ДОЛЖЕН применить эти политики в документе iframe srcdoc.


Ответы:


1

Это невозможно.

Есть только два способа добиться того, что вам нужно:

  1. Измените правила CSP родительской страницы, чтобы внести в белый список ваш произвольный код (я бы предложил использовать одноразовый номер CSP или хэш для вашего произвольного контента, а не unsafe-inline).
  2. Направьте свой iframe на внешний (суб)домен с правилами, которыми вы можете управлять, и добавьте его в белый список с помощью frame-src и child-src (см. пункт 1).
25.05.2015
  • Итак, в основном мне нужно настроить эхо-сервер, который просто выдает произвольный код, чтобы iframe не был документом iframe srcdoc? 26.05.2015
  • Да, но этот эхо-сервер должен находиться в том же домене, порту и протоколе, что и исходный документ (потому что это 'self'). Или вам нужно добавить frame-src https://domain.com/; child-src https://domain.com/ в родительский документ, потому что frame-src и child-src (используемые для iframe в старых и новых браузерах соответственно) наследуются от default-src, если они не установлены явно. 26.05.2015
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..