Javascript 权限问题检查父站点是否为iframe中的父域

Javascript 权限问题检查父站点是否为iframe中的父域,javascript,iframe,dns,Javascript,Iframe,Dns,我已经读了一些关于这个的问题,但还是有点困惑。 例如:好的,由于超链接的限制,我不能发布示例 这是我的确切情况 我在mydomain.com有一个网站 其中一个页面与sub.mydomain.com上的另一个页面之间有一个iframe 我试图准备一个onload脚本,如果页面不在iframe中,或者包含iframe的页面的父域不是mydomain.com,则重定向到mydomain.com 在最初的权限问题之后,我意识到了子域作为独立域计算的问题 上面的一篇帖子说,每个人都可以使用foo.myd

我已经读了一些关于这个的问题,但还是有点困惑。 例如:好的,由于超链接的限制,我不能发布示例

这是我的确切情况

我在mydomain.com有一个网站 其中一个页面与sub.mydomain.com上的另一个页面之间有一个iframe

我试图准备一个onload脚本,如果页面不在iframe中,或者包含iframe的页面的父域不是mydomain.com,则重定向到mydomain.com

在最初的权限问题之后,我意识到了子域作为独立域计算的问题

上面的一篇帖子说,每个人都可以使用foo.mydomain.com或mydomain.com

所以我试着测试: onload=document.domain='mydomain.com';alertparent.location.href

这导致错误http被lar替换

Error: Permission denied for <http://sub.mydomain.net> (document.domain=<http://mydomain.net>) to get property Location.href from <http://mydomain.net> (document.domain has not been set).
Source File: http://sub.mydomain.net/?pageID=1&framed=1
Line: 1
删除警报不会产生任何错误

也许我这样做是错误的,因为我不需要与家长互动,只要读取其域(如果有)


一个很好的简单的top.domain。对于只读,必须有一种方法,以便人们可以防止自己的页面在其他人的网站中被使用。

由于安全限制,您无法轻松做到这一点


可能会给你指出正确的方向。

好的,当我回到家时,看着我打开的错误控制台,一个小灯泡亮了起来。我对javascript还很陌生,你能告诉我吗;但我想如果它有尝试/捕捉

这里有一个黑客程序,至少可以获取顶级域名的名称,还有一个示例,说明我将如何在我的站点中使用它来显示内容,前提是页面是正确域中的一个框架

首先,标头将具有以下部分PHP生成的函数:

function getParentDomain()
{
  try
  {
    var wibble=top.location.href;
  }
  catch(err)
  {
    if (err.message.indexOf('http://mydomain.com')!=-1)
    {
      createCookie('IAmAWomble','value')
    }
  }
}
基本上,我认为该值将基于PHP会话。这将在页面加载时执行

如果页面不在正确的站点内,或者未启用javascript,则不会创建cookie。 然后,PHP将尝试从cookie中读取正确的值,并根据需要显示内容或错误消息

我确实在第一次访问中看到了一个轻微的缺陷,因为页面加载将在PHP生成内容后运行,但我相信我可以以某种方式解决这个问题。我想我应该发布,因为这至少是我最初要求的,如果父站点与框架中的站点位于不同的域中,那么这是一种读取父站点URL的方法。

IIUC您想使用属性:“对当前窗口或子框架的父站点的引用。”
很可能,window.parent.document.location.host包含容器页面URL域名。

问题是我没有试图操纵父对象,只是告诉父对象是谁。一定有某种机制可以做到这一点。当然,这是一个安全功能,而不是一个安全漏洞,能够告诉谁是嵌入您的页面在他们的网站?您可以无孔获取浏览器的IP地址。。哦,等等。。。这可能是一种方式,IP地址会是父站点的IP地址吗?补充说明:有一个PHP后端,因此如果我可以在那里做一些事情,它会更好,但在web上搜索告诉我,我无法确定页面是否在PHP的框架中,我将不得不求助于javascript。javascript可以被阻止,在你的页面上有这些代码只会给那些可能正在使用你的页面的人提供更多关于你的安全方案的信息。这并不理想,因为我托管父域,但不是100%控制从它运行的应用程序,但是父域是否可以为子域设置cookie,子域可以读取并说是,那是我爸爸。然后我就不会有两个盒子在框架里,如果是我的,我就去找饼干。麻烦的是,它需要自动过期,它会在iframe读取它之前自动过期吗?必须有一种方法来说明我是否不在mydomain.com的框架内。。。。无论是服务器端还是客户端,再次被屏蔽。当然,当我切换浏览器时,错误消息变得更加简洁,直到IE权限被拒绝。哦,好吧,我想我至少在firefox中发现了一个漏洞,有一段时间我的希望破灭了,我感到自鸣得意。我真傻。