У меня есть iframe, который встроен в сторонние сайты, и я хочу, чтобы эти сайты могли связываться с указанным iframe через postMessage. Я хотел бы ограничить происхождение, которое может взаимодействовать с iframe, до происхождения (создания экземпляра) веб-страницы. В настоящее время я достигаю этого, просто добавляя источник в iframe как таковой:
<iframe src = "https://whatever.com/iframe?host=${window.location.href}" />
Однако я хотел бы отказаться от этого метода по причинам, выходящим за рамки этого вопроса. Таким образом, я рассматривал возможность проверки сообщения с помощью комбинации window.parent и ducument.referrer. Что-то вроде:
const originatingOrigin = parse(document.referrer).origin;
document.addEventListener("message", function (message)
{
if (message.origin !== originatingOrigin || window.parent !== message.source)
return;
});
Является ли это 1) таким же безопасным, как когда я передавал URL-адрес в себе, и 2) надежным в том смысле, что нет случаев, когда, скажем, document.referrer заблокирован, и в этом случае API будет сломан.
Итак, круг проблем:
null/unavailable/incorrect в эта установка. Я знаю, что может быть иначе, если вы, например, перейдете через перенаправление, но, учитывая, что мой сценарий будет создавать iframe и устанавливать src, этот случай не должен вызывать беспокойства.


![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Похоже, что установка Referrer-Policy: no-referrer делает document.referrer неработающим.