0

我们有一个与其他公司合作的平台,公司网站在标签中打开

 window.open('#','ociCallWindow','width=800,height=600,resizable=yes,scrollbars=yes,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no');

现在这将打开一个站点,该站点通过 javascript 自动提交表单将数据发送回处理程序。
此处理程序生成一个页面,该页面应关闭页面并将 ser 重定向到我们系统上的其他位置。

好吧,IE 开始表现得像他一样,并大喊 XSS 攻击,我必须禁用 xss 才能使其正常工作。就像它在 http://www.sevenforums.com/tutorials/169672-internet-explorer-cross-site-scripting-xss-filter-turn-off.html上描述的那样, 一切正常。

但我有办法绕过 xss 警报。

这是我们网站生成的代码:

<html>
<head>
<script type="text/javascript" src="/dtagent55_bejnp3_5160.js" data-dtconfig="rid=RID_895225973|rpid=315099290|domain=eprocure.at|tp=500,50,0|bandwidth=300"></script><script type="text/javascript">var NREUMQ=NREUMQ||[];NREUMQ.push(["mark","firstbyte",new Date().getTime()]);</script>
<script language="JavaScript" src="js/catalog.js"></script>
<link rel="STYLESHEET" type="text/css" href="css/catalog-mondi.css"><title>TESTSYSTEM: mondizone</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="js/catalog.min.js?rnd=2.69.2"></script>
</head>

            <body class='backgrd' leftmargin='0' topmargin='0' marginwidth='0' marginheight='0' text='#000000' link='#424E91' vlink='#7979BD' alink='#336633'>

            <table>
                <tr>
                    <td>
                        Die Artikel wurden erfolgreich in Ihren Warenkorb übernommen. <br />Falls dieses Fenster nicht automatisch geschlossen wird, können Sie dieses Fenster jetzt schließen.                 </td>
                </tr>
            </table>

                        <script type="text/javascript">
                                    if (opener || window.opener || self.opener) {
                        var myopener = getOpener();

                        myopener.document.dispmenu.target = "";

                                            myopener.document.dispmenu.xxxxxx_errors.value = '{serialized object... ye i know...}';
                                        myopener.document.dispmenu.dxxx.value = 'cart' ;
                        myopener.document.dispmenu.submit();
                    }
                    else {
                        alert('Das Elternfenster wurde bereits geschlossen oder es kann nicht darauf zugegriffen werden. Die Artikel wurden trotzdem übernommen.');
                    }
                    window.close();
                                </script>
                <script type="text/javascript">if(!NREUMQ.f){NREUMQ.f=function(){NREUMQ.push(["load",new Date().getTime()]);var e=document.createElement("script");e.type="text/javascript";e.async=true;e.src="https://d1ros97qkrwjf5.cloudfront.net/42/eum/rum.js";document.body.appendChild(e);if(NREUMQ.a)NREUMQ.a();};NREUMQ.a=window.onload;window.onload=NREUMQ.f;};NREUMQ.push(["nrf2","beacon-1.newrelic.com","62a9b17b88",1115503,"MgZbNUAFCBVQVxFcCwtMbBNbSwUHRRsKVg0XBk0UQApIFllACFk=",0,1668,new Date().getTime()]);</script>
</body>
    </html>
4

1 回答 1

0

我想我在这方面分享我的见解。

虽然我没有在这方面取得任何明确的进展,但我发现了一个导致这种情况发生的普遍问题。

在我的例子中,我们对外部站点进行了 OCI 调用,在苦苦处理数据之后,我们发现我们的站点跟踪工具负责。New relic 是一个服务器端插件,它在您的所有 http 调用中注入一个跨站点脚本脚本。最糟糕的是,它通常在页面加载结束时不可见。当导致页面关闭的页面有自己的跟踪工具时,也会出现问题。一般来说,您必须使用 Fiddler2 来缓存该死的东西!调试工具往往会错过这段代码,不知道为什么。

于 2013-10-28T15:54:18.940 回答