额,估计是IP地址暴露了,最近博客由于被多个域名恶意解析,导致网站权重下降,关键词全掉了。其实之前也发现这个问题了,但是一直挺忙的懒得搭理他们,今天抽出来点时间解决一下。

先说下什么是恶意镜像,一段百度小百科摘录如下:

恶意镜像,也叫恶意克隆,恶意解析,是指有人通过域名A记录直接解析别人IP地址,从而得到一个在访问者眼中完全相同网站的过程。

多了也不说了,大家有想了解的自行搜索吧。

另外是如何查看自己网址是被恶意解析了,直接在搜索引擎中搜索“intitle 你的网址标题”即可,比如“intitle 蝈蝈要安静 | 一个不学无术的伪程序员”,即可在搜索页面查看到自己网址的搜索结果,如果显示有其他域名,基本上可以确定网站被恶意解析了。如下图所示:

下面说下具体解决方案。

方案一 宝塔面板禁用默认站点

额,由于个人使用的是宝塔搭建的服务器,所以这里直接进入后台网站面板下修改“默认站点”为“未设置默认站点”即可。当然你也可以设置个其他不用的站点为默认站点显示你想显示的内容,具体你懂得ヽ( ̄▽ ̄)ノ。

修改完成后我们再去访问恶意镜像我们的网址会出现如下结果:

该方案适用于本站 IP 地址暴露,恶意网站直接解析到我们 IP 地址。

方案二 禁止镜像网站 IP 地址访问

新建一个 ip.php 文件,将以下代码保存并丢到网站根目录下。

<?php
    $file = "ip.txt"; //保存的文件名
    $ip = $_SERVER['REMOTE_ADDR'];
    $handle = fopen($file, 'a');
    fwrite($handle, "IP Address:");
    fwrite($handle, "$ip");
    fwrite($handle, "\n");
    fclose($handele);
?>

然后访问“恶意网站域名/ip.php”(例如:www.sinbodl.com/ip.php )获取恶意网站的 IP 地址。

最后,将获取到的 IP 地址加入网站黑名单即可。具体操作为在根目录下的 .htaccess 文件中添加如下代码,注意将 IP 地址修改为恶意镜像网站的 IP 地址。关于.htaccess 文件,请看这篇文章>>> Apache服务器配置文件.htaccess详解

# 添加IP黑名单
Order Deny,Allow
Deny from 42.236.10.75

修改完成后访问镜像网站会提示如下信息:

该方案适用于恶意镜像网站直接复制我们网站内容。

方案三  JavaScript 代码防护

将以下代码添加到网站<head>…</head>标签之中,代码主要功能是当网址不为“blog.quietguoguo.com”时自动跳转至“blog.quietguoguo.com”域名。

<script type="text/javascript">
    if (document.location.host != "blog.quietguoguo.com") {
        location.href = location.href.replace(document.location.host,'blog.quietguoguo.com');
    }
</script>

注意,如果镜像网站禁用 JS 代码后该方法将无效。那么 JS屏蔽后如何办呢?

由于大多镜像网站会屏蔽 JS ,所以这里通过图片的 onerror 事件判断JS是否被屏蔽,如果被屏蔽运行 JS 的相关命令以实现网站的跳转,图片直接使用空图片即可。具体代码如下:

<div style="display:none;">
    <script>proxy2016 = false;</script>
    <img src="" onerror='setTimeout(function(){if(typeof(proxy2016)=="undefined"){window.location.href="blog.quietguoguo.com";}},3000);'>
</div>

为了安全起见,通过代码混淆工具将我们实际要用的 JS 代码混淆一下。本站混淆代码如下:

<div style="display:none;"> 
    <script>proxy2016 = false;</script> 
    <img src="" onerror='setTimeout(function(){if(typeof(proxy2016)=="\x75\x6e\x64\x65\x66\x69\x6e\x65\x64"){window["\x6c\x6f\x63\x61\x74\x69\x6f\x6e"]["\x68\x72\x65\x66"]="\x62\x6c\x6f\x67\x2e\x71\x75\x69\x65\x74\x67\x75\x6f\x67\x75\x6f\x2e\x63\x6f\x6d";}},3000);'> 
</div>

代码来源:https://boke112.com/3429.html

方案四 WordPress 专用版

将以下代码添加到主题 functions.php 文件夹中即可:

add_action('wp_footer','deny_mirrored_websites');
function deny_mirrored_websites(){
    $currentDomain = "blog' + '.quietguoguo.' + 'com"; //此处自行拆分一下自己的域名即可
    echo '<img style="display:none" src=" " onerror=\'this.onerror=null;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) }\' />';
}

代码来源:https://zhangge.net/5101.html

最后,做个小黑板,记录这些光荣的英雄们:

http://www.hxtcsc.shop/

http://m.hxtcsc.shop/

http://www.sinbodl.com/