如果网站被恶意镜像怎么办 一段代码轻松搞定

作者 : 来源互联网 本文共7703个字,预计阅读时间需要20分钟 发布时间: 2017-10-25 共442人阅读

有时候你会发现,你在搜索引擎输入网站名称的时候,出来的网站信息是你们的,但是域名却是一个陌生的,这种情况可以基本确定网站被镜像了,那么究竟什么叫网站被镜像?

恶意镜像,也叫恶意克隆,恶意解析,是指有人通过域名A记录直接解析别人IP地址,从而得到一个在访问者眼中完全相同网站的过程。其工作原理基本上是这样子的:有用户访问镜像站点时,程序就会来正版的站点查询数据,并修改相关链接然后呈献给用户,实质上还是在读取原站的数据。严谨一点的解释:通过复制整个网站或部分网页内容并分配以不同域名和服务器,以此欺骗搜索引擎对同一站点或同一页面进行多次索引的行为%20。
网站被镜像的危害

通俗的讲,恶意镜像者意图利用自己有一定权重的域名进行威压,通过某些手段复制了你的站点,除了域名不一样之外,其他内容一模一样,用户或许根本无法分辨。甚至对于一些新的站点,搜索引擎都会迷惑到底哪个是真的站点,那么就有可能正牌的网站被删除收录,而盗版的却被搜索引擎青睐。

虽然目前我们还不知道恶意镜像我们的网站到底有什么意图,但肯定对我们没什么好处,如果他这个域名有点什么不健康的信息,那么我们被镜像的站点有可能被污染掉,所以还是要警惕这个现象。
如何知道自己的网站是否被镜像

复制自己网站的完整标题(PS:查看自己站点首页源码,其中%20<title>龙笑天下%20-%20分享悲伤;共享快乐</title>),然后在谷歌和百度等搜索引擎里搜索,如搜索: 分享悲伤;共享快乐,如果有其他网站的网站标题、描述及网站内容跟你的一样,只有域名不一样,那就是被镜像了。
如何处理网站被镜像

这类镜像看似一个完整的站点,其实上是每次用户访问镜像站点,程序就会来正版的站点查询数据,并修改相关链接然后呈献给用户。实质上还是在读取原站的数据。就列举几种解决方法,大家自行取舍使用!
方法1:查清镜像网站的主机Ip,通过禁止Ip来解决

本教程基于WordPress程序,其他系统请自测!

1、获取镜像服务器ip。注:这个IP可能不是ping到他域名的IP

复制如下代码,新建一个php文件,并命名为“ip.php”上传到你的网站根目录。

1
2
3
4
5
6
7
8
9 <?php $file%20=%20“ip.txt”;%20//保存的文件名 $ip%20=%20$_SERVER[‘REMOTE_ADDR’]; $handle%20=%20fopen($file,%20‘a’); fwrite($handle,%20“IP%20Address:”); fwrite($handle,%20“$ip”); fwrite($handle,%20“\n”); fclose($handele); ?>

2、然后访问你网站的镜像站点,在地址后面加…/ip.php,然后你就会在网站根目录找到ip.txt文件了,打开复制里面的ip地址。

3、然后打开你的.htaccess文件,在后面加上如下代码(自行修改为刚刚获得的ip) 1 2 3 #添加IP黑名单 Order%20Deny,Allow Deny%20from%20162.158.72.179

当然,如果你使用CDN,可以直接在CDN后台添加ip黑名单

这个时候你再刷新一下镜像站点,是不是已经403报错了呢?这个时候已经解决了这个镜像站点,然后就等待蜘蛛将其解决掉吧。

此方法的缺点就是如果镜像网站更换了ip,那我们的屏蔽就失败了

方法2:JS来防护

在头部标签:取自%20@boke112导航 1 <head></head>

里加上下面的JS代码: 1 2 3 4 5 <script%20type=“text/javascript”> if%20(document.location.host%20!=%20“www.sosokan.top”)%20{ location.href%20=%20location.href.replace(document.location.host,‘www.sosokan.top’); } </script>

或加上以下的JS代码: 1 2 3 4 5 6 <script%20type=“text/javascript”> rthost%20=%20window.location.host; if%20(rthost%20!=%20“www.ilxtx.com”)%20{ top.location.href%20=%20“http://www.tmavip.com”; } </script>

注意:将上面代码中的www.sosokan.top改为你网站的首页主地址,如果我上面填写的不是我网站的主地址%20www.sosokan.top,而是%20sosokan.top%20的话,就会导致网站一直刷新!

注:经过本站测试,如果镜像站屏蔽了JS,则该方法失效。所以,最好把方法2和方法3结合使用!

方法3:Js被屏蔽后防止镜像的方法

将以下代码加到网站的header.php中:代码取自%20@boke112 1 2 3 4 <div%20style=“display:none;”> <script>proxy2016%20=%20false;</script> <img%20src=“”%20onerror=‘setTimeout(function(){if(typeof(proxy2016)==”undefined”){window.location.host=”www.ilxtx.com”;}},3000);’> </div>

有些网站会屏蔽掉JS代码(如下面的代码)%20: 1 <script>...</script>

所以%20<script>proxy2016%20=%20false;</script>%20代码将被过滤掉,img的onerror设置超时时间3000毫秒,将运行函数部分,检测是否还存在proxy2016字符,如果没有找到就会将主机的URL改为www.sosokan.top;为了安全起见,将js部分可以使用js代码混淆(本站“JS代码混淆”%20工具%20或%20长之家JS混淆工具站)。

本站的混淆结果如下: 1 2 3 4 <div%20style=“display:none;”> <script>proxy2016%20=%20false;</script> <img%20src=“%20”%20onerror=‘setTimeout(function(){if(typeof(proxy2016)==”undefined”){window[“\x6c\x6f\x63\x61\x74\x69\x6f\x6e”][“\x68\x6f\x73\x74″]=”\x77\x77\x77\x2e\x69\x6c\x78\x74\x78\x2e\x63\x6f\x6d”;}},3000);’> </div>

经过我的测试,此代码在Chrome、IE11和360极速浏览器上均有效,会跳转到源站的原文章页!在Firefox上则无效果,镜像的文章页并不会跳转到原站……%20将代码中img标签的src引用地址改为空格或无效的图片地址后,在Firefox上也起作用了!

方法4:借助Img的Onerror事件

20161119更新(增加搜狗快照支持):此方法使用了后,会导致百度快照、谷歌快照、必应快照和搜狗快照等跳到404页面(360搜索快照则不会~),奈何不知怎么弄,2016-11-10再次经过张戈的指导,将原代码中的:if(%20str1!=str3%20)%20改为%20:if(%20str1!=str3%20&&%20str3!="cache.baiducontent.com"%20&&%20str3!="webcache.googleusercontent.com"%20&&%20str3!="c.360webcache.com"%20&&%20str3!="cncc.bingj.com"%20&&%20str3!="snapshot.sogoucdn.com"%20)%20。估计要等快照更新时才能知道效果了!

20161127:经过验证,上述更新已经起作用了!具体效果.

20171022更新:从张戈那看到,这段代码会因为onerror死循环造成浏览网页的电脑高负载(CPU飙升),因此在代码onerror触发事件中加入onerror清空机制,即加入this.onerror=null

通过拆分域名链接与镜像站比对,然后用img标签src空值触发onerror来执行js比对,比对失败则跳转回源站。

①、WordPress专用版

经过%20@张戈%20童学的不断改进(IE不支持%20window.stop()%20函数,所以“20160909版本”失效…),已经完美的适配Firefox、Chrome、IE11和360极速浏览器,而且可以跳转至源站的相应文章页,在此衷表感谢!下面3段任选一个即可。

代码如下:(复制粘贴到主题的functions.php最后一个?>之前) 1 2 3 4 5 6 7 8 9 10 11 12 /** */ add_action(‘wp_footer’,‘lxtx_deny_mirrored_websites’); function%20lxtx_deny_mirrored_websites(){     $currentDomain%20=%20‘www”%20+%20″.ilxtx.”%20+%20″com’;     //  $currentDomain%20=%20′”zhangge.”%20+%20″net”‘;     echo%20‘<img%20style=”display:none”%20src=”%20″%20onerror=\’this.onerror=null;var%20str1=”‘.$currentDomain.‘”;str2=”docu”+”ment.loca”+”tion.host”;str3=eval(str2);if(%20str1!=str3%20&&%20str3!=”cache.baiducontent.com”%20&&%20str3!=”webcache.googleusercontent.com”%20&&%20str3!=”c.360webcache.com”%20&&%20str3!=”cncc.bingj.com”%20&&%20str3!=”snapshot.sogoucdn.com”%20){%20do_action%20=%20″loca”%20+%20″tion.”%20+%20″href%20=%20loca”%20+%20″tion.href”%20+%20″.rep”%20+%20″lace(docu”%20+”ment”+”.loca”+”tion.ho”+”st,”%20+%20″\”‘%20.%20$currentDomain%20.‘\””%20+%20″)”;eval(do_action)%20}\’%20/>’; }

Ps:如果是丢到wp_head,经过测试发现图片放到head,浏览器会自动进行错误调整,导致一些本来在head的元素被丢到了body当中,比如style.css,估计网页标准中head里面就不应该放置图片,所以移到了footer当中。

或者 或者 Tips:如果想像“20160909版本”一样有个提示语,可将上面这段代码改为此 20160909版本

②、HTML通用版

既然是利用js代码,那么就能用到如何html页面当中了。要不是为了可以放到wp的functions.php,都没必要写成php的模式,直接用html代码即可: 1 <img%20style=“display:none”%20src=“%20”%20onerror=‘this.onerror=null;var%20currentDomain=”www.”%20+%20″ilxtx”%20+%20″.com”;%20var%20str1=currentDomain;%20str2=”docu”+”ment.loca”+”tion.host”;%20str3=eval(str2)%20;if(%20str1!=str3%20&&%20str3!=”cache.baiducontent.com”%20&&%20str3!=”webcache.googleusercontent.com”%20&&%20str3!=”c.360webcache.com”%20&&%20str3!=”cncc.bingj.com”%20&&%20str3!=”snapshot.sogoucdn.com”%20){%20do_action%20=%20″loca”%20+%20″tion.”%20+%20″href%20=%20loca”%20+%20″tion.href”%20+%20″.rep”%20+%20″lace(docu”%20+”ment”+”.loca”+”tion.ho”+”st,”%20+%20″currentDomain”%20+%20″)”;eval(do_action)%20}’%20/>

将以上代码中的:%20var%20currentDomain=“www.”%20+%20“ilxtx”%20+%20“.com”;%20自行拆分成自己的域名,避免被镜像代码替换掉,比如:%20var%20currentDomain=“zhangge.”%20+%20“net”;

然后将代码添加到网站的%20<body>%20之后即可(不建议放置到%20<head>%20里面,具体原因上文已说明),这个版本适合任何网页。
方法5:通过禁止某些User%20Agent特征来防 服务器反爬虫攻略:Apache/Nginx/PHP禁止某些User%20Agent抓取网站 我们都知道网络上的爬虫非常多,有对网站收录有益的,比如百度蜘蛛(Baiduspider),也有不但不遵守robots规则对服务器造成压力,还不能为网站带来流量的无用爬虫,比如YY蜘蛛(Yis… 阅读:500   评论:10   喜欢:1   评分:

参考上面这篇文章来禁止UA为PHP的抓取网页,从而达到防镜像的目的!

①、PHP通用版:

将下面的代码贴到网站入口文件index.php中的第一个%20<?php之后即可: 1 2 3 4 5 6 7 8 9 10 11 12 13 //防止恶意HTTP_USER_AGENT采集 $ua%20=%20$_SERVER[‘HTTP_USER_AGENT’]; $now_ua%20=%20array(‘FeedDemon%20’,‘BOT/0.1%20(BOT%20for%20JCE)’,‘CrawlDaddy%20’,‘Java’,‘Feedly’,‘UniversalFeedParser’,‘ApacheBench’,‘Swiftbot’,‘ZmEu’,‘Indy%20Library’,‘oBot’,‘jaunty’,‘YandexBot’,‘AhrefsBot’,‘MJ12bot’,‘WinHttp’,‘EasouSpider’,‘HttpClient’,‘Microsoft%20URL%20Control’,‘YYSpider’,‘jaunty’,‘Python-urllib’,‘lightDeckReports%20Bot’,‘PHP’); if(!$ua)%20{ header(“Content-type:%20text/html;%20charset=utf-8”);     die; }else{     foreach($now_ua%20as%20$value%20)     if(eregi($value,$ua))%20{     header(“Content-type:%20text/html;%20charset=utf-8”);     die;     } }

②、Wordpress适用版

如果使用上面的php版本,WordPress每次更新就会需要操作index.php,比较麻烦,因此弄个专版。

将下面的代码贴到%20functions.php%20中的最后一个%20?>之前即可: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 /** */ //防止恶意HTTP_USER_AGENT采集 add_action(‘wp_head’,%20‘lxtx_deny_mirrored_request’,%200); function%20lxtx_deny_mirrored_request() { $ua%20=%20$_SERVER[‘HTTP_USER_AGENT’]; $now_ua%20=%20array(‘FeedDemon%20’,‘BOT/0.1%20(BOT%20for%20JCE)’,‘CrawlDaddy%20’,‘Java’,‘Feedly’,‘UniversalFeedParser’,‘ApacheBench’,‘Swiftbot’,‘ZmEu’,‘Indy%20Library’,‘oBot’,‘jaunty’,‘YandexBot’,‘AhrefsBot’,‘MJ12bot’,‘WinHttp’,‘EasouSpider’,‘HttpClient’,‘Microsoft%20URL%20Control’,‘YYSpider’,‘jaunty’,‘Python-urllib’,‘lightDeckReports%20Bot’,‘PHP’); if(!$ua)%20{ header(“Content-type:%20text/html;%20charset=utf-8”); wp_die; }else{     foreach($now_ua%20as%20$value%20)     if(eregi($value,$ua))%20{     header(“Content-type:%20text/html;%20charset=utf-8”);     wp_die;     } } }

经过测试,在functions.php中加入此代码后,打开镜像站后显示“Internal%20Server%20Error”,强制刷新后显示我们设置好的提示文字“请勿采集本站,请正常访问。
本站目前发现的恶意镜像域名

dijicat.com
lapaleo.com
iaroex.com
disauvi.com
3s3s.org
ytlqpo.com
s3.gvirabi.com
hdtmail.com
dimyapi.com

更多镜像网站等你提供~

在这些域名前面加上你们自己的的域名,看看有没有被恶意镜像。

友情提示:建议方法2和方法3一起使用!方法4包含方法2和方法3~

原文出自:http://www.ilxtx.com/mirrored-website.html

RIPRO主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
唐迈博客 » 如果网站被恶意镜像怎么办 一段代码轻松搞定

提供最优质的资源集合

立即查看 了解详情
© 2018 RIPRO - VIP.YLIT.CC & WordPress Theme. All rights reserved 京ICP证8888888号