0

例如,我有一个名为 www.example.com 的网站,它是一个父域。我在里面使用框架。在框架内,我打电话给 www.mail.example.com

我需要检查 mail.example.com(iframe 内的 URL) 是否与 google 所在的域相同...

这可以防止跨框架脚本。如何实现?

我制定的模态..

if (window.document.domain != top.document.domain) {   
   SWGuardianWindowOpen("http://google.com","_self","");
  }

其他:

if (self != top)
{
//redirect to the google.com
}


if (parent && parent.frames && parent.frames.length>0)

但是这些都没有帮助...

4

1 回答 1

2

如果您想防止非同源页面嵌入您的网站,则不需要 JavaScript hack。

只需将以下标记添加到<head>您的 HTML 文档(例如:http: //jsfiddle.net/b28CK/show/):

<meta http-equiv="X-Frame-Options" content="SAMEORIGIN">

如果允许修改服务器的响应头,也可以添加X-Frame-Options: SAMEORIGIN响应头来达到相同的效果。

如果您想使用 JavaScript 来检测父源,那么您可以使用location.ancestorOrigins找出父源列表。不过,这只适用于基于 Webkit 和 Chromium 的浏览器。

于 2014-03-04T15:56:22.427 回答