阻止了原始框架如何修复

时间:2014-12-15 14:43:07

标签: javascript php .htaccess

阻止原始https://xxxx的框架访问来源https://xxx的框架。协议,域和端口必须匹配。

我需要此设置才能工作,并且我可以访问这两个域(2个不同的域)。

我怎样摆脱这个?

我尝试将php-header放在iframe所在的页面上:

header("Access-Control-Allow-Origin: https://domain_the_iframe_is_placed");

还有htaccess:

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
</IfModule>

我该怎么办?

这是iframe页面,位于另一个域(y.com)上,但放在x.com上

  parent.document.getElementById('accoxxation').value='<?=$_POST['account_verification']?>';
  parent.document.getElementById('accxx').value='<?=$_POST['account_number']?>';
  parent.document.getElementById('accxxonth').value='<?=$_POST['account_month']?>';
  parent.document.getElementById('accxxxr').value='<?=$_POST['account_year']?>';

  parent.document.getElementById('gatewayProcessor').submit();

3 个答案:

答案 0 :(得分:1)

allow-origin将允许服务器请求称为CORS,而不是帧间连接。尝试与窗口消息进行通信,这是为此目的而设计的 例如:

父:

myFrame.contentWindow
        .postMessage("STRING", myFrame.src);

myFrame:

window.addEventListener("message", function (event) {
    // Security: Validate message origin
    if (event.origin !== myVerifiedOrigin) {
        return;
    }
    console.log(event.data);
});

答案 1 :(得分:0)

禁止访问其他来源的帧。您可以在浏览器设置的深度更改它。我不认为这是个好主意。这是一个安全问题。如果您可以控制两个源,则可以使用postMessage来传递投掷帧。

Tutorial

答案 2 :(得分:0)

默认情况下,您不能/不应该这样做,但根据本网站

http://javascript.info/cross-window-communication

这是“相同来源”政策中的一小部分。

如果Windows共享相同的第二级域,例如john.site.com,peter.site.com和site.com(因此它们的公共第二级域为site.com),则可以将它们视为来自“同一来源”。

要使其正常运行,所有此类页面(包括来自site.com的页面)都应运行以下代码:

document.domain = 'site.com';

仅此而已。现在,他们可以无限制地进行交互。同样,这仅适用于具有相同二级域的页面。