首页 > WEB开发 > 如何防范的iframe非法嵌入
2016
04-06

如何防范的iframe非法嵌入

WEB工程师在iframe标签上的讨论一直不嫌少,包括其可以用来跨域,方便开发的特性。但另一方面它又不利于对页面进行SEO优化,并且会降低网站的安全性。说到iframe的安全性问题,利用iframe来非法嵌入正规官方网站的页面,同时在页面两边打着自己产品的标语,宣称自己与大网站合作进而推销自己产品的例子,并不少见。

那么应该如何保护自己的网站不被非法分子利用呢?其实很简单,一小段JS代码即可:

        if (window != top)
        top.location.href = window.location.href; 

通过JS来判断当前页面所处DOM对象是否是最顶层页面,因为在最顶层页面中,window对象即等于top对象,如果不相等即将最顶层的页面(即非法分子的主页面)跳转到iframe中的页面。但是这段代码有一个问题,即自己的网站也无法用iframe嵌入自己的页面。其实很简单,改进一下:

        var myDomain = "abc";
        var webHost = top.location.href;
        var tempArr = webHost.split(".");
        if(tempArr.indexOf(myDomain) == -1)
        {
            if (window != top)
            top.location.href = window.location.href;
        }

通过top对象的href属性来判断当前顶层页面的域名是否为自己网站的域名即可。只需要把myDomain替换成自己网站域名的二级域名部分。最后只要把这段代码放入页面的onload事件即可完成对网站的保护啦!

编程技巧