javascript - Wie kann ich top.location.href =window.location.href knacken und die Webseiten anderer Leute über Iframe einbetten?
高洛峰
高洛峰 2017-05-19 10:14:12
0
2
1296

Wie der Titel, vielleicht ist er nicht ganz klar.
Es besteht eine Nachfrage. „Xiao Hu, unser Produkt muss eine neue Funktion hinzufügen, nämlich die Möglichkeit, gut geschriebene H5-Seiten anzuzeigen oder den Benutzern eine Webseitenanzeige bereitzustellen.“ eine bestimmte Nachrichten-Website.“
Ich dachte, da ich so etwas Schurken machen möchte, habe ich in der Vergangenheit iframe zum Einbetten von Seiten Dritter verwendet, also könnte ich das genauso gut verwenden, und ich habe kein anderes gefunden Methoden.
Dann kommt das Problem, wenn eine Nachrichten-Website es beispielsweise einbettet, wendet es sich gegen den Kunden und tötet meine HTML-Seite direkt! Nach unermüdlichen Bemühungen wurde festgestellt, dass die Webseite einen „Anti-Operator-Hijacking-Code“ enthielt; der Code lautet wie folgt:

<!-- 反运营商劫持 S -->
<style type="text/css">
    html {
        display:none;
    }
    </style>
<script>
    if( self == top ) {
        document.documentElement.style.display = 'block' ;
    } else {
        top.location = self.location ;
    }
    </script>
<!-- 反运营商劫持 E -->

Kann mir irgendein Meister helfen, es zu knacken?

Folgende Methoden wurden verwendet:

//在主窗口的</head>标签前面添加 
<script type="text/javascript"> 
var location=document.location 
</script>
//或者: 
<script type="text/javascript">
var location="" 
</script>

Allerdings gibt es keine Eier. . .

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

Antworte allen(2)
刘奇

一楼答主所言极是;
目前的解决方案是通过ifram的“沙盒属性”sandbox来禁止跳转;
所有主流浏览器都支持 sandbox 属性。但IE 9 以及更早的版本不支持 sandbox 属性,Opera 12 以及更早的版本也不支持该属性
如果您要兼容IE8及以下,请忽略答案!!!
iframe的sandbox属性及值:

不设置allow-top-navigation就不会被强制跳转了!!!
当然,你会发现不跳转但是页面内容不显示,以xw.qq.com为例,你会发现是因为iframe中的html被设置了"display:none";

  //以下代码在已webview形式嵌套到android中的html页面有效
  $(window.frames["iframe的id"].document).find("html").css('display', 'block') //基于jQuery

在pc端暂时没找到解药
报错跨域!!

正常界面(android webview中的前端页面):

代码(自行调试,pc绕过!):
var iframe = document.createElement("iframe");

    iframe.id = "iframeId";
    iframe.src = "xw.qq.com";
    iframe.style.width = "100%";
    iframe.style.height = "100%";
    iframe.sandbox = "allow-scripts allow-same-origin";
    iframe.frameborder = "0";
    iframe.scrolling = "no";
    iframe.marginwidth = "0";
    iframe.marginheight = "0";
    iframe.border = "0";
       if (! /*@cc_on!@*/ 0) { //浏览器 不是IE的情况下
        iframe.onload = function () {
            console.log("已经加载完成!/no IE");
            $(window.frames["iframeId"].document).find("html").css('display', 'block');
        };
    } else {
        iframe.onreadystatechange = function () {
            if (iframe.readyState == "complete") {
                console.log("已经加载完成!/ IE");
                $(window.frames["iframeId"].document).find("html").css('display', 'block');
            }
        };
    }
    $this.appDom.html(iframe);
    
滿天的星座
http://www.w3school.com.cn/tags/att_iframe_sandbox.asp
这个怎么样?阻止操作包含的。但是不阻止执行脚本。
或者你就别用iframe了。你就放一个截图。然后想看的时候a标签跳转呗
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage