真实有效防止网站被恶意镜像的方法(终极版)

  • A+
所属分类:WordPress 优化

最近一段时间看到好多站长提到网站被镜像的问题,一直没多注意,想到自己的站这么没名气,估计别人也不屑于来镜像我的站。

真实有效防止网站被恶意镜像的方法(终极版)

可当我打开镜像地址时,整个人瞬间懵逼了,原来镜像不分大小,我的站也被镜像了,没错,我的站也被镜像了!

http://www.d9y.net.s3.gvirabi.com

http://www.d9y.net.3s3s.org

http://www.d9y.net.lapaleo.com

上面三个地址打开,内容和原站内容一模一样,不一样的时域名还有镜像站满屏的广告。

先不说镜像站对我们自己的站有不有影响,有多大影响。但这真是让人很气愤的!

被镜像之后查了很多资料,但是很多方法都不管用,也请教过张戈博主,根据张戈博主的指点与思路,终于折腾出真实有效防止网站被恶意镜像的方法。

好了,下面来说说屏蔽这些镜像站的方法。

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

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

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

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

缺点:代码必须混淆。

二、JS跳转法(通用法二)

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

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

  1. <img style="display:none" src=" " onerror='var currentDomain="www." + "d9y" + ".net"; 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:感谢张戈博主的指点,上面代码来源于张戈博客!

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

缺点:暂无。

三、JS跳转法(WordPress专用)

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

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

  1. //防止网站被恶意镜像
  2. add_action('wp_footer','deny_mirrored_websites');
  3. function deny_mirrored_websites(){
  4.     $currentDomain = 'www" + ".d9y." + "net';
  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:感谢张戈博主的指点,上面代码来源于张戈博客!

此方法优点:方便、避免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://www.d9y.net

将上面代码中加到.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文件。

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

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

如果发现有更好的方法或其他镜像站,欢迎讨论!

感谢张戈博客热腾网的帮助!

历史上的今天:

  • 我的微信
  • 扫一扫
  • weinxin
  • 我的微信公众号
  • 扫一扫
  • weinxin
avatar

发表评论

:?::razz::sad::evil::!::smile::oops::grin::eek::shock::???::cool::lol::mad::twisted::roll::wink::idea::arrow::neutral::cry::mrgreen:

目前评论:117   其中:访客  117   博主  0

    • avatar王光卫博客1

      这个被恶意镜像太痛苦了,先收藏!

        • avatarKoolight9

          @王光卫博客 希望本文能起到作用!

        • avatar叶九秋1

          又见鸟哥主题

            • avatarKoolight9

              @叶九秋 烂大街啊!

            • avatar康乐民博客4

              能混到别人镜像你的站,也是间接对你网站的肯定啊!想我这网站就没有人来镜像,因为看不上撒

                • avatarKoolight9

                  @康乐民博客 这应该是触发式的镜像,你可以试下自己的站。

                • avatar狂放3

                  搜索引擎角度来讲第四第五种有用
                  搜索引擎:js?不认

                  • avatar阁主博客1

                    了解了一下预防镜像还是必须要的,慢慢做大了,不得不防!多谢分享! :grin:

                      • avatarKoolight9

                        @阁主博客 这个预防一下为好!

                      • avatar看全网影视0

                        哈哈,谢谢分享。

                        • avatar银色月航5

                          才看到博主的文章,自己去查询一下,立马中招~~~

                            • avatarKoolight9

                              @银色月航 加段代码可以适当防御下的!

                            • avatar不要扛木1

                              那说明你的网站做的不错

                                • avatarKoolight9

                                  @不要扛木 很多镜像站都是被动的。