@tuxx

Как настроить CSP для iframe?

Не получается настроить cross-site\content-security-policy для доступа к содержимому iframe с некоторой страницы черкез js код. Сама страница имее домен второго уровня (site.ru) или localhost:1111 для демо. iframe загружается с поддомена третьего уровня (sub.site.ru или localhost:222). При попытке со страницы получить элементы из iframe
$frame[0].contentWindow.document;
Получаю ошибку в консоли:
SecurityError: Permission denied to access property "document" on cross-origin object


Для iframe добавляю атрибут:
sandbox="allow-same-origin allow-scripts"

Так же в на странице с iframe и в сам iframe добавляю js код:
document.domain = 'site.ru';
или
document.domain = 'localhost'; // для демо

Пробовал ставить для основной страницы через nginx разные заголовки:
X-Frame_options: allow-from https://site.ru
X-Frame_options: allow-from https://localhost:1111

Content-Security-Policy: "default-src 'self' https://site.ru https://*site.ru https://site.ru script-src * 'unsafe-inline' 'unsafe-eval'; style-src * 'unsafe-inline'; object-src *"
Content-Security-Policy: "default-src 'self' https://localhost https://*localhost https://localhost*; script-src * 'unsafe-inline' 'unsafe-eval'; style-src * 'unsafe-inline'; object-src *"

Origin: site.ru
Origin: localhost
  • Вопрос задан
  • 1350 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы