防止自己的网页被iframe框架引用
对于一些安全要求较高的网站,往往不希望自己的网页被另外非授权网站框架包含,因为这往往是危险的,因为不法分子总是想尽办法以“钓鱼”的方式牟利。
对于禁止网页被frame或者iframe框架,我总结了下面三种方法供大家参考。
1.使用meta元标签
1 2 3 4 5 6 |
<html> <head> <meta http-equiv="Windows-Target" contect="_top"> </head> <body></body> </html> |
这个方法的具体效果不是很清楚的,貌似之前试过一次,但是没有效果,可能浏览器太旧了吧。
2.使用JavaScript脚本
1 2 3 4 5 6 7 8 |
function location_top(){ if(top.location!=self.location){ top.location=self.location; return false; } return true; } location_top(); // 调用 |
这个方法用得比较多,但是网上的高手也想到了破解的办法,那就是在父框架中加入脚本var location=document.location或者var location="",所以这个方法也就不推荐了,当然唬唬不懂的还是可以的。
3.使用HTTP响应头
这里介绍的响应头是X-Frame-Options,这个属性可以解决使用js判断会被var location;破解的问题,IE8、Firefox3.6、Chrome4以上的版本均能很好的支持,关于这个响应头属性详细的介绍可以看《The X-Frame-Options response header》 ,这篇文章给出了这个属性两个可能的值:
DENY The page cannot be displayed in a frame, regardless of the site attempting to do so.
SAMEORIGIN The page can only be displayed in a frame on the same origin as the page itself.
其中我们用到DENY,这样就禁止该页在上述支持的浏览器被框架引用了。当然设置header响应头的办法有很多,比如PHP的header函数和.htaccess的Header set等。