跨域反框架破坏

时间:2018-10-25 06:04:46

标签: javascript html iframe framebusting

我有一个简单的chrome扩展程序,可以将iframe注入到活动页面中(不是重要部分)
我想嵌入一个位于http://diep.io的游戏,但是此站点已实现了一些frame-busting技术。我仍然希望能够将其加载到 iframe 中,以便使用 Iframe (类似于的其他标签打开该文件)嵌入 webview (但是您可以使之正常工作))

那么我怎么能得到anti-frame busting型的东西呢?
显然,这是跨域,因此在内部编辑 DOM 不是确实最容易/应该不是有可能。我已经尝试过 sandbox 属性,但这只会导致iframe中的上一页(链接中心类型的页面)出现问题,从而无法使用。

因此,这里的主要问题是如何跨域 embedded page 防框架破坏 沙盒属性?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。 我的iframe使用一个按钮进行导航(HTML ID为“ deHBox”) 而且我的iframe与标记为“ Ifr”的变量链接。

    document.getElementById("deHBox").addEventListener("click", function(){
    sandbox(false);
    Ifr.src = url;
    Ifr.style.height = 'calc(100% - 23px)';
    Ifr.style.width = '100%';
    setTimeout(function() {sandbox(true)}, 500);
});


    setTimeout(function() {sandbox(true)}, 500);


function sandbox(on) {
    if (on == true) {
        Ifr.sandbox = "allow-scripts allow-forms allow-pointer-lock allow-popups allow-same-origin";
    } else {
        Ifr.removeAttribute('sandbox');
    }
}

我刚刚将此添加到了injected.js文件中...