来自IFrame的JavaScript权限错误
我有一个来自IFrame的JavaScript权限错误,javascript,jakarta-ee,Javascript,Jakarta Ee,我有一个.jsp,它包含一个IFrame,其中一个页面包含一些嵌入式JavaScript。此JavaScript访问父页面(包含IFrame的页面)中的一些DOM元素 嵌入的页面将位于与父页面分离的子域上,我意识到其中存在一些安全隐患。我的印象是,IFrame中嵌入的任何页面的document.domain必须与父页面的document.domain匹配,才能允许跨IFrame访问。嵌入式页面当前包含以下代码以扩展其安全范围: document.domain = 'domain.com'; //
.jsp
,它包含一个IFrame,其中一个页面包含一些嵌入式JavaScript。此JavaScript访问父页面(包含IFrame的页面)中的一些DOM元素
嵌入的页面将位于与父页面分离的子域上,我意识到其中存在一些安全隐患。我的印象是,IFrame中嵌入的任何页面的document.domain
必须与父页面的document.domain匹配,才能允许跨IFrame访问。嵌入式页面当前包含以下代码以扩展其安全范围:
document.domain = 'domain.com'; //where domain.com is my domain
然后继续访问父文档中的DOM元素
我目前正在对此进行测试,并使用以下条目修改了为父页面提供服务的Windows计算机上的主机文件:
127.0.0.1 domain.com
目标是欺骗父页面上的JavaScript,使其相信嵌入页面中的文档来自同一域
如果我浏览到同一台机器上的页面。尽管通过Firebug观察到document.domain
在我的父页面和嵌入页面中都显示为domain.com
,但在尝试从嵌入页面中运行的JavaScript获取或设置DOM属性时,我遇到了“权限被拒绝”错误
我遗漏了什么吗?即使“document.domain”属性看起来相同,从is听起来您仍然需要明确地将它们设置为相同:
不同主机上的所有页面必须
明确拥有域属性
设置为相同的值以进行通信
彼此成功地相处。对于
例如,域的值
主机上页的属性
microsoft.com是由
违约如果
您可以设置页面的域属性
在另一个名为
msdn.microsoft.com改为“microsoft.com,”
这两页可以交流
彼此之间。然而,这并非如此
除非您显式设置
上的页的域属性
microsoft.com至“microsoft.com”。
您可以放置一个代理,将
的请求重定向到正确的位置
这只是一个想法
问候。我相信你是对的。我尝试将JavaScript代码中的document.domain属性显式设置为主机文件中的相同值。一旦我这样做了,错误就被解决了。然而,这很奇怪。在显式设置document.domain属性之前和之后,我观察了该属性的值,该值保持不变。然而,不知何故,这一切都起了作用。也许还有一些我不知道的事情,可以通过在代码中设置这个属性来解决。你发布的链接也非常有用!非常感谢你!