技术频道导航
HTML/CSS
.NET技术
IIS技术
PHP技术
Js/JQuery
Photoshop
Fireworks
服务器技术
操作系统
网站运营

赞助商

分类目录

赞助商

最新文章

搜索

【轻易破解】使用JS防止网页被Frame框架调用?

作者:admin    时间:2018-1-16 10:34:39    浏览:

当我们想防止网页被Frame框架调用时,使用JS实现是常见的方法,今天看到有文章提到这个方法可以轻易被破解,于是我亲测了一下,结果。。。请看本文范例吧。

使用JS防止网页被Frame框架调用的代码

我们先看看防止网页被Frame框架调用的JS代码:

<script language="javascript">
if(window.self != window.top){
    window.top.location.replace(window.self.location);
}
</script>

原理是判断 window.self 是否等于 window.top

范例代码

example.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>使用iframe引用网页</title>
</head>
<body>
<iframe src="js-no-iframe.html" style="width:600px;height:350px;"></iframe>
</body>
</html>

js-no-iframe.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>使用JS防止网页被Frame框架调用</title>
<script language="JavaScript">
//网页如果被iframe引用,用此页强行代替父页
if(window.self != window.top){
    window.top.location.replace(window.self.location);
}
</script>
</head>
<body>
这是被iframe引用的页面
</body>
</html>

execcode getcode

破解方法

// 顶层窗口中放入代码
var location = document.location;
// 或者 var location = "";

范例代码

example2.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>iframe引用网页范例</title>
<script language="javascript">
  var location = document.location;
</script>
</head>
<body>
<iframe src="js-no-iframe.html" style="width:600px;height:350px;border:1px;"></iframe>
</body>
</html>

execcode getcode

从该范例看到,网页并不能被成功引用,所谓的破解代码并没有效果。

使用X-Frame-Options防止网页被Frame

上面提到用JS防止网页被iframe嵌入,其实最好的方法是使用 X-Frame-Options 防止网页被Frame,可参考我此前写的文章《360安全提示“X-Frame-Options头未设置”的解决方法(IIS)》、《web.config 设置 X-Frame-Options 的方法【亲测有效】》。

标签: frame  
相关文章
    • IT热文
    • 站长推荐