当前位置: 首页 > 知识库问答 >
问题:

跨站脚本攻击Iframe权限拒绝问题

萧和同
2023-03-14

我得到跨站脚本攻击错误以下代码。

Javascript

 function resizeIframe(ifRef) 
            {
                var ifDoc;
                //alert(ifRef);

                try
                { 
                    ifDoc = ifRef.contentWindow.document.documentElement; 
                }
                catch( e )
                {
                   alert(e);
                    try
                    { 
                    ifDoc = ifRef.contentDocument.documentElement; 
                    }
                    catch( ee ){
                             alert(ee);
                          } 
                }
                //var doc = ifRef.height;
                //alert(doc);
                if(ifDoc)
                {
                    ifRef.height = 1; 
                    ifRef.style.height = ifDoc.scrollHeight+'px';               
                }
            }

内联框架

<iframe onload="resizeIframe(this)" style="margin-bottom: 16px;" src="ourteamnav/first.php" frameborder="0" scrolling="no" width="597" height="240"></iframe>

错误如下

对于“e”:

Mozilla Firefox:错误:访问属性文档的权限被拒绝

GoogleChrome:TypeError:无法读取未定义的属性“文件元素”

至于‘ee’:

Mozilla Firefox:错误:访问属性“documentElement”的权限被拒绝

Google Chrome:TypeError:无法读取null的属性“documentElement”

Internet Explorer:错误:访问被拒绝。

我认为它不能以一般方式解决,因为它正在发生,因为域指向另一个域。那么有谁能指导我在不使用JavascriptcontentDocument的这些属性的情况下解决这个问题呢。documentElement内容窗口。文件documentElement用于根据Iframe内容的内部内容动态调整Iframe内容的大小。

谢谢

共有2个答案

戚晨
2023-03-14

正如你所说,这是一个跨领域的问题。

如果您对这两个页面都有控制权,则可以使用postMessage在这两个页面之间交换信息。

一些参考资料:

  • Ben Alman调整iFrame大小的示例
东方和志
2023-03-14

除了Christophe的回答之外,我还想(遗憾地)指出,postMessage并不适用于所有浏览器。

幸运的是,Josh Fraser已经提供了一个向后兼容的Windows版本。postMessage()。它检查浏览器是否支持postMessage-方法。如果是这样,它就会使用它。如果没有,它将使用URL(来自iframe和父级)传递数据

现在,您可以使用以下方法让两个窗口相互“对话”:

XD.postMessage(msg, src, frames[0]);
XD.receiveMessage(function(message){
    window.alert(message.data + " received on "+window.location.host);
}, 'URL');

只需确保您正确阅读了文档,因为配置必须设置正确。

 类似资料:
  • 2.4. 跨站脚本攻击 跨站脚本攻击是众所周知的攻击方式之一。所有平台上的Web应用都深受其扰,PHP应用也不例外。 所有有输入的应用都面临着风险。Webmail,论坛,留言本,甚至是Blog。事实上,大多数Web应用提供输入是出于更吸引人气的目的,但同时这也会把自己置于危险之中。如果输入没有正确地进行过滤和转义,跨站脚本漏洞就产生了。 以一个允许在每个页面上录入评论的应用为例,它使用了下面的表单

  • 描述 跨站脚本,或者 XSS,涉及到站定包含非预期的 JavaScript 脚本代码,它随后传给用于,用户在浏览器中执行了该代码。它的一个无害示例为: alert('XSS'); 这会调用 JavaScript 函数alert,并创建一个简单的弹出窗口,带有文本XSS。现在,在这本书的前一个版本中,我推荐你在报告中使用这个例子。但是,一个非常成功的黑客告诉我这是个糟糕的例子,因为漏洞的接收者通常

  • 拒绝服务(DoS)攻击是黑客企图使网络资源不可用的一种攻击。它通常会临时或无限地中断主机,让正常使用的用户无法访问目标服务。这些攻击通常针对托管在关键任务Web服务器(如银行,信用卡支付网关)上的服务。 DoS的症状 网络性能异常缓慢。 特定网站不可用。 无法访问任何网站。 收到的垃圾邮件数量大幅增加。 长期拒绝访问网络或任何互联网服务。 特定网站不可用。 动手实践 第1步 - 启动WebGoat

  • 本文向大家介绍jQuery Mobile漏洞会有跨站脚本攻击风险,包括了jQuery Mobile漏洞会有跨站脚本攻击风险的使用技巧和注意事项,需要的朋友参考一下 概述 根据国外媒体的最新报道,谷歌公司的安全工程师Eduardo Vela在jQuery Mobile框架中发现了一个安全漏洞,这个漏洞将会让 所有使用了jQuery Mobile的网站暴露于跨站脚本攻击风险之下 。 jQuery Mo

  • 问题内容: 我正在尝试在Ubuntu 18.04上部署可正常运行的Windows 10 Spring-Boot / React应用程序,但是尽管进行了无数次尝试修复,但仍会出现“ react-scripts:Permission denied”错误。希望你们中的一位反应专家可以发现我的错。 我的package.json看起来像这样 我以root用户身份登录,并使用nvm来安装node和lts。我这