Javascript 为邮件后通信建立父源

Javascript 为邮件后通信建立父源,javascript,security,cross-domain,postmessage,referrer-policy,Javascript,Security,Cross Domain,Postmessage,Referrer Policy,我有一个iframe嵌入到第三方站点中,我希望这些站点能够通过postMessage与所述iframe进行通信。我想将可以与iframe通信的源代码限制为原始(实例化)网页的源代码。目前,我只需将原点附加到iframe即可实现这一点: <iframe src = "https://whatever.com/iframe?host=${window.location.href}" /> 这是否1)像我自己传递URL时一样安全,2)万无一失,因为没有阻止document.referer

我有一个iframe嵌入到第三方站点中,我希望这些站点能够通过
postMessage
与所述iframe进行通信。我想将可以与iframe通信的源代码限制为原始(实例化)网页的源代码。目前,我只需将原点附加到iframe即可实现这一点:

<iframe src = "https://whatever.com/iframe?host=${window.location.href}" />
这是否1)像我自己传递URL时一样安全,2)万无一失,因为没有阻止document.referer的情况,比方说,在这种情况下API会被破坏

因此,关注的范围包括:

  • 在此设置中,document.referer是否可以
    为空/不可用/不正确
    。我知道,如果您执行重定向,可能会有所不同,但是考虑到我的脚本将创建iframe并设置src,这种情况不应该引起关注
  • 考虑到我解析/存储document.referer,是否存在其他敌对iframe可能通信/移动iframe的奇怪技巧(混淆window.parent等)

  • 似乎设置“推荐人策略:无推荐人”会使document.Referer无效

    const originatingOrigin = parse(document.referrer).origin;
    
    document.addEventListener("message", function (message)
    {
        if (message.origin !== originatingOrigin || window.parent !== message.source)
            return;
    });