WordPress教程—防止网站被恶意镜像的终极版教程(真实有效)

陈鑫威Blog 1,653 18
温馨提示

最近一段时间看到好多站长提到网站被镜像的问题,一直没多注意,但是我的一级域名由于做了没做主页,导致直接跳转至我的blog,网站被镜像,这个问题应该是所有草根站长最苦恼的问题,也是最深恶痛疾的事情。为了让大家对恶意镜像有一个清晰的认识,所以陈鑫威特意在网络上收集整理一些关于恶意镜像的知识(如网站恶意镜像定义、危害与影响、防止镜像方法等)跟大家分享一下。

什么是恶意镜像?

恶意镜像,也叫恶意克隆,恶意解析,是指有人通过域名A记录直接解析别人IP地址,从而得到一个在访问者眼中完全相同网站的过程。其工作原理基本上是这样子的:有用户访问镜像站点时,程序就会来正版的站点查询数据,并修改相关链接然后呈献给用户,实质上还是在读取原站的数据。

网站被恶意镜像对有什么影响?

恶意镜像者意图通过自己有一定权重的域名进行威压,让搜索引擎对刚刚成立的网站产生迷惑,对同时存在和解析的两个域名分不清真假,不知如何抉择。有的搜索引擎技术比较成熟,可以分清真假,但是也有部分搜索引擎傻傻地分不清楚,有可能会选择恶意者的域名,同时删去原站长的域名

至于恶意者得手之后会做些什么?我们无法推测,但是无论如何都不会是对我们有利的。千万不要因为镜像网站给我们带来的一些流量而庆幸,因为带来流量的同时也会带走你的用户,在搜索引擎迷惑的同时,用户也会无所适从,不知道哪个是真,哪个是假。如果恶意者域名或者其它部分含有敏感不健康的信息,也可能会导致受害者IP被封掉。

如何查看自己的网站是否被别人镜像?

在搜索引擎中限定搜索范围在自己网站的完整标题中(PS:查看自己站点首页源码,其中<title>这里就是站点的网站标题</title>),如搜索: intitle 陈鑫威博客

如果从搜索结果中可以看出,有几个跟贵站点标题一模一样的,但是域名却不是你们的,说明贵站已经被恶意镜像了。

WordPress教程—防止网站被恶意镜像的终极版教程(真实有效)

WordPress教程—防止网站被恶意镜像的终极版教程(真实有效)

(实际二级域名 blog.iav6.cn)

网站被恶意镜像怎么办?

网络上已经有很多大神分享了如何防止网站被恶意镜像的办法,现在就推荐几种测试真正有效的防镜像方法,具体选择哪种方法就请大家根据自己的情况自由选择吧。

 

方法一:JS跳转法(通用法一)

即通过JS判断当前域名,如果不是本域名则跳转回本域名。但镜像网站都会过滤掉JS代码甚至JS文件,那么我们需要加入代码混淆和触发事件。

将下面代码中的地址改为自己的域名地址添加到主题目录header.php中适当位置即可(此方法有效)!

  1. <script type="text/javascript">
  2. if(window["\x6c\x6f\x63\x61\x74\x69\x6f\x6e"]["\x68\x6f\x73\x74"] != 'blog.iav6.cn' && window["\x6c\x6f\x63\x61\x74\x69\x6f\x6e"]["\x68\x6f\x73\x74"] != 'iav6.cn'){
  3.     alert('警告!检测到该网站为恶意镜像站点,将立即为您跳转到官方站点!');
  4.     window["\x6c\x6f\x63\x61\x74\x69\x6f\x6e"]["\x68\x72\x65\x66"] = 'http://'+'blog.iav6.cn/';
  5. }
  6. </script>
  7. <div style="display:none;">
  8. <script>nod9ynet = false;</script>
  9. <img src=" " onerror='setTimeout(function(){if(typeof(noiav6cn)=="undefined"){window["\x6c\x6f\x63\x61\x74\x69\x6f\x6e"]["\x68\x6f\x73\x74"]="blog.iav6.cn";}},3000);'>
  10. </div>

上述代码为两段代码组合而成,相辅相承,配合使用来防止不同技术处理的镜像站。

其中,'iav6." + "cn'需要自行修改成自己的域名即可,带有blog的可以修改成"blog." + "iav6" + ".cn"

PS:感谢热腾博主的指点,上面代码中的JS触发事件来源于热腾网!

此方法优点:简单、通用。

缺点:代码必须混淆。

 

方法二:JS跳转法(通用法二)

同方法一,利用拆分法将代码拆分,不需要再对代码进行混淆。

将下面代码中的地址改为自己的域名地址添加到主题目录header.php中适当位置即可(此方法有效)!

  1. <img style="display:none" src=" " onerror='var currentDomain="blog." + "iav6" + ".cn"; var str1=currentDomain; str2="docu"+"ment.loca"+"tion.host"; str3=eval(str2) ;if( str1!=str3 && str3!="cache.baiducontent.com" && str3!="webcache.googleusercontent.com" && str3!="c.360webcache.com" && str3!="snapshot.sogoucdn.com" && str3!="cncc.bingj.com" ){ do_action = "loca" + "tion." + "href = loca" + "tion.href" + ".rep" + "lace(docu" +"ment"+".loca"+"tion.ho"+"st," + "currentDomain" + ")";eval(do_action) }' />

PS:感谢张戈博主的指点,上面代码来源于张戈博客!

其中,'iav6." + "cn'需要自行修改成自己的域名即可,带有blog的可以修改成"blog." + "iav6" + ".cn"

此方法优点:简单,通用。

缺点:暂无。

 

方法三:JS跳转法(WordPress专用)

看到龙笑天下网站中归纳的防镜像方法,比较全面,并且已有更方便的方法来解决镜像问题,故跟进。

将下面代码中的地址改为自己的域名地址添加到当前所用的主题的 functions.php 中即可(此方法有效)!

  1. //防止网站被恶意镜像
  2. add_action('wp_footer','deny_mirrored_websites');
  3. function deny_mirrored_websites(){
  4.     $currentDomain = 'blog" + ".iav6." + "cn';
  5.     echo '<img style="display:none" src=" " onerror=\'var str1="'.$currentDomain.'";str2="docu"+"ment.loca"+"tion.host";str3=eval(str2);if( str1!=str3 && str3!="cache.baiducontent.com" && str3!="webcache.googleusercontent.com" && str3!="c.360webcache.com" && str3!="snapshot.sogoucdn.com" && str3!="cncc.bingj.com" ){ do_action = "loca" + "tion." + "href = loca" + "tion.href" + ".rep" + "lace(docu" +"ment"+".loca"+"tion.ho"+"st," + "\"' . $currentDomain .'\"" + ")";eval(do_action) }\' />';
  6. }

PS:感谢张戈博主的指点,上面代码来源于张戈博客!

其中,'iav6." + "cn'需要自行修改成自己的域名即可,带有blog的可以修改成"blog." + "iav6" + ".cn"

此方法优点:方便、避免WordPress升级导致失效。

缺点:只适用于WordPress。

 

方法四:屏蔽恶意镜像站UA

根据抓取服务器日志分析得知lapaleo.com此镜像站UA为"PHP/5.4.45"

那么通过.htaccess将此UA屏蔽掉即可(此方法有效)!

  1. # 屏蔽恶意UA
  2. RewriteCond %{HTTP_USER_AGENT} "PHP/5.4.45"
  3. RewriteRule ^(.*)$ http://blog.iav6.cn

将上面代码中加到.htaccess中即可。

此方法优点:一劳永逸。

缺点:只能针对某些特殊UA的镜像站点。

 

方法五:屏蔽镜像站IP

根据抓取服务器日志分析可抓取镜像站的IP地址(关闭CDN情况下)

再通过.htaccess将镜像站IP屏蔽掉即可(此方法有效)!

如果开启了CDN,则需要将下面三个IP地址加入CDN黑名单!

  1. # 屏蔽恶意IP
  2. Order Allow,Deny
  3. Allow from all
  4. Deny from 142.4.100.25
  5. Deny from 188.129.143.73
  6. Deny from 104.236.180.129

将上面代码中加到.htaccess中即可。

上面三个IP地址为镜像站的IP地址(其中某镜像IP地址会隔段时间改变)

此方法优点:最原始,最暴力。

缺点:镜像网站IP收集不全并且某些镜像站IP会改变。


好了,通过上面几种方法基本上可以防止网站被镜像的问题了。

PS:修改前注意先备份文件,特别是.htaccess文件。

 

建议同时使用方法(一)/(二)/(三)、方法四、方法五。

方法一、方法二、方法三不要同时使用,因为三种方法原理相同,同时使用可能会出现某些莫名其妙问题……

我使用的是方法二:JS跳转法(通用法二)

然后解决了问题

WordPress教程—防止网站被恶意镜像的终极版教程(真实有效)

WordPress教程—防止网站被恶意镜像的终极版教程(真实有效)

打赏
发表评论
表情 图片 链接 代码

  1. 梁兴健
    梁兴健 Lv 3

    恶意镜像的确很恶心

    • 陈鑫威Blog
      陈鑫威Blog 站长

      @梁兴健用以上方法,防止镜像[aru_65]

  2. 学习笔记Blog

    呵呵,其实最简单的就是HTTPS后强制HTTPS访问!以及非HTTPS都做301到HTTPS!

  3. ade
    ade Lv 1

    co.uk 这样写:'www." + "iav6" + ".co" + ".uk' 吗?

    • 陈鑫威Blog
      陈鑫威Blog 站长

      @ade<img style="display:none" src=" " onerror='var currentDomain="co" + ".uk"; var str1=currentDomain; str2="docu"+"ment.loca"+"tion.host"; str3=eval(str2) ;if( str1!=str3 && str3!="cache.baiducontent.com" && str3!="webcache.googleusercontent.com" && str3!="c.360webcache.com" && str3!="snapshot.sogoucdn.com" && str3!="cncc.bingj.com" ){ do_action = "loca" + "tion." + "href = loca" + "tion.href" + ".rep" + "lace(docu" +"ment"+".loca"+"tion.ho"+"st," + "currentDomain" + ")";eval(do_action) }' />

      • ade
        ade Lv 1

        @陈鑫威Blog谢谢。。方法3这样对吗?
        add_action('wp_footer','deny_mirrored_websites');
        function deny_mirrored_websites(){
        $currentDomain = 'www" + ".iav6." + "co" + ".uk';
        echo '<img style="display:none" src=" " onerror=\'var str1="'.$currentDomain.'";str2="docu"+"ment.loca"+"tion.host";str3=eval(str2);if( str1!=str3 && str3!="cache.baiducontent.com" && str3!="webcache.googleusercontent.com" && str3!="c.360webcache.com" && str3!="snapshot.sogoucdn.com" && str3!="cncc.bingj.com" ){ do_action = "loca" + "tion." + "href = loca" + "tion.href" + ".rep" + "lace(docu" +"ment"+".loca"+"tion.ho"+"st," + "\"' . $currentDomain .'\"" + ")";eval(do_action) }\' />';
        }

        • 陈鑫威Blog
          陈鑫威Blog 站长

          @ade'www" + ".iav6." + "co" + ".uk'; 改为 "co" + ".uk';

      • ade
        ade Lv 1

        @陈鑫威Blog[aru_24][aru_24]被好几个站镜像。。。坑爹

        • 陈鑫威Blog
          陈鑫威Blog 站长

          @ade[aru_22]

          • ade
            ade Lv 1

            @陈鑫威Blog这个我是WP 干脆你帮我改下我直接粘帖过去。我域名是www.xxx.co.uk 谢谢大神
            方法三:JS跳转法(WordPress专用)

            看到龙笑天下网站中归纳的防镜像方法,比较全面,并且已有更方便的方法来解决镜像问题,故跟进。

            将下面代码中的地址改为自己的域名地址添加到当前所用的主题的 functions.php 中即可(此方法有效)!

            //防止网站被恶意镜像
            add_action('wp_footer','deny_mirrored_websites');
            function deny_mirrored_websites(){
            $currentDomain = 'blog" + ".iav6." + "cn';
            echo '<img style="display:none" src=" " onerror=\'var str1="'.$currentDomain.'";str2="docu"+"ment.loca"+"tion.host";str3=eval(str2);if( str1!=str3 && str3!="cache.baiducontent.com" && str3!="webcache.googleusercontent.com" && str3!="c.360webcache.com" && str3!="snapshot.sogoucdn.com" && str3!="cncc.bingj.com" ){ do_action = "loca" + "tion." + "href = loca" + "tion.href" + ".rep" + "lace(docu" +"ment"+".loca"+"tion.ho"+"st," + "\"' . $currentDomain .'\"" + ")";eval(do_action) }\' />';
            }

            PS:感谢张戈博主的指点,上面代码来源于张戈博客!

            其中,'iav6." + "cn'需要自行修改成自己的域名即可,带有blog的可以修改成"blog." + "iav6" + ".cn"

            此方法优点:方便、避免WordPress升级导致失效。

            缺点:只适用于WordPress。

          • 陈鑫威Blog
            陈鑫威Blog 站长

            @ade//防止网站被恶意镜像
            add_action('wp_footer','deny_mirrored_websites');
            function deny_mirrored_websites(){
            $currentDomain = 'www" + ".xxx." + "co" + ".uk';
            echo '<img style="display:none" src=" " onerror=\'var str1="'.$currentDomain.'";str2="docu"+"ment.loca"+"tion.host";str3=eval(str2);if( str1!=str3 && str3!="cache.baiducontent.com" && str3!="webcache.googleusercontent.com" && str3!="c.360webcache.com" && str3!="snapshot.sogoucdn.com" && str3!="cncc.bingj.com" ){ do_action = "loca" + "tion." + "href = loca" + "tion.href" + ".rep" + "lace(docu" +"ment"+".loca"+"tion.ho"+"st," + "\"' . $currentDomain .'\"" + ")";eval(do_action) }\' />';
            }

          • ade
            ade Lv 1

            @陈鑫威Blog[aru_66][aru_66]谢谢。。。。

          • 陈鑫威Blog
            陈鑫威Blog 站长

            @ade你的网站我。。。点开了。。。然后。。。静悄悄的关了。。。

          • ade
            ade Lv 1

            @陈鑫威Blog哈哈[aru_38][aru_38]

          • 陈鑫威Blog
            陈鑫威Blog 站长

            @ade不怕查水表?

          • ade
            ade Lv 1

            @陈鑫威Blog这个不是我的。。那里有这么牛逼的域名。。。我的站是co.uk的。。随便写一个是这种的。哈哈。。我以为打不开呢

          • 陈鑫威Blog
            陈鑫威Blog 站长

            @ade你的站多少

分享
微信
微博
QQ