Как получить URL, который браузер использует для CSP - PullRequest
0 голосов
/ 06 июля 2018

Я создаю сценарий, который вставляет iframe с моим сайтом на сайт клиента, но я хочу ограничить доступ к этой функции.

Я добавил 2 заголовка к ответам сервера

Content-Security-Policy: "frame-ancestors: example.com"
X-Frame-Options: ALLOW-FROM example.com

Работает, но X-Frame-Options не поддерживает несколько доменов, поэтому я добавил GET-параметр в URL-адреса iframe, содержащие URL-адрес предка фрейма

А когда http://example.net запрашивает mysite.com/embed/?from=http://example.net, я проверяю белый список и отправляю этот домен в заголовках

Моя проблема заключается в получении реального источника страницы, который браузер использует для сравнения с заголовками. Я попытался location.origin и document.referrer, но оба возвращают неправильные значения, когда я запрашиваю iframe из iframe.

Например, http://jsbin.com. Я не могу найти способ получить реальный URL в изолированном коде, это всегда http://null.jsbin.com. Но для Content-Security-Policy браузер использует http://jsbin.com/

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