mirror-1.jpg

恶意镜像指的是什么?

恶意镜像,也叫恶意克隆,恶意解析,是指有人通过域名 A 记录直接解析别人 IP 地址,从而得到一个在访问者眼中完全相同网站的过程。严谨一点的解释:通过复制整个网站或部分网页内容并分配以不同域名和服务器,以此欺骗搜索引擎对同一站点或同一页面进行多次索引的行为 。

另一个烦人的事是,镜像网站一般来说并不是要和你提供同样的产品或服务,而是把用户转到赌博、色情等服务上去。有的是通过JS把赌博、色情内容显示给用户,有的直接把用户转向到另外的网站上去。

如何判别网站是否被镜像?

复制自己网站的完整标题(PS:查看自己站点首页源码,其中 首页标题),然后在谷歌和百度等搜索引擎里搜索,如搜索:intitle 首页标题,如果有其他网站的网站标题、描述及网站内容跟你的一样,只有域名不一样,那就是被镜像了。

网站被恶意镜像了怎么办?

我们可以根据自己的情况使用下面的代码。

JS通用版

网站防镜像最简单有效的做法就是在部分插入如下 js 代码即可:

温馨提醒:别忘记把当前 url 中的域名换成我们自己的域名

<script type="text/javascript">
/* 如果浏览器域名不是 mao.sh 将跳转到 mao.sh 对应的页面*/
if (document.location.host != "mao.sh") {
    location.href = location.href.replace(document.location.host,'mao.sh');
} 
</script>

JS 版本效果确实可以,但是有一个小弊端,大部分搜索引擎不能识别 js,所以蜘蛛还是能正常抓取镜像网站,有可能会影响 SEO。

HTML通用版

<img style="display:none" src=" " onerror='this.onerror=null;var currentDomain="mao." + "sh"; var str1=currentDomain; str2="docu"+"ment.loca"+"tion.host"; str3=eval(str2) ;if( str1!=str3 ){ do_action = "loca" + "tion." + "href = loca" + "tion.href" + ".rep" + "lace(docu" +"ment"+".loca"+"tion.ho"+"st," + "currentDomain" + ")";eval(do_action) }' />

将以上代码中的

var currentDomain="mao." + "sh";

拆分成我们自己的域名,避免被镜像代码替换掉,比如:

var currentDomain="www." + "baidu" + ".com";

然后将代码添加到网站的之后即可(不建议放置到里面,具体原因上文已说明),WP 一般为 header.php 文件,其他建站程序请自行搞定,这个版本适合任何网页。

通过UA禁止

直接将 PHP 这个关键词加入到《Apache/Nginx/PHP屏蔽垃圾UA爬虫的方法》 这篇文章的 UA 清单中即可!

PHP通用版

//禁止UA为空或含有PHP的请求
$ua = $_SERVER['HTTP_USER_AGENT'];
if(!$ua || preg_match('/PHP/i', $ua)) {
    header("Content-type: text/html; charset=utf-8");
    die('请勿采集本站,因为采集的站长木有小JJ!');
}

将以上代码加入到 PHP 网站根目录的 index.php<?php 之后即可。

Nginx 版本

if ($http_user_agent ~* "PHP") {
     return 403;
}

将以上规则加入到 nginx 的 vhost 当中,比如添加到第一个 location 之前,然后重载 Nginx 即可。

代码参考:《分享一个网站防镜像以及解决七牛静态页面跳转的js方案》


相关推荐

文章作者:喵斯基部落
原文地址:https://www.moewah.com/archives/481.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。非商业转载及引用请注明出处(作者、原文链接),商业转载请联系作者获得授权。