通过PHP或者JS来防止网站被恶意镜像的方法
方法一∶PHP防御法
1、PHP获取镜像网站服务器IP
复制如下代码,新建一个php文件,并命名为“ip.php”上传到你的网站根目录
<?php
$file="ip.txt";//保存的文件名
$ip=$_SERVER['REMOTE_ADDR'];
$handle=fopen($file,'a');
fwrite($handle,"IPAddress:");
fwrite($handle,"$ip");
fwrite($handle,"\n");
fclose($handele);
?>
2、然后访问你网站的镜像站点,在地址后面加.../ip.php,然后你就会在网站根目录找到ip.txt文件了,打开复制里面的ip地址。
3、打开你的.htaccess文件,在后面加上如下代码(自行修改为刚刚获得的ip)
添加IP黑名单
OrderDeny,Allow
Denyfrom162.158.72.179
我们再刷新一下镜像站点,是不是已经403报错了呢?
这个时候已经解决了这个镜像站点,然后就等待蜘蛛将其解决掉吧。
方法二:JS防御法
如果你无法通过IP禁止镜像网站,那么可以通过JS代码判断主域。如果主域不是本域名则跳转回本域名。
在网站标签之前中添加JS判断代码,代码如下:
if(document.location.protocol!="https:"&&navigator.userAgent.indexOf("MSIE6.0")<0)
{
location.href=location.href.replace(/^http:/,"https:");
}
if(document.location.host!="www.luxd.cc")
{
location.href=location.href.replace(document.location.host,'www.luxd.cc');
}
如果以上方法都无效,请继续往下看
一、JS跳转法
通过JS判断当前域名,如果不是本域名则跳转回本域名。但镜像网站都会过滤掉JS代码甚至JS文件,那么我们需要加入代码混淆和触发事件。
将下面代码中的地址改为自己的域名地址添加到主题目录header.php中适当位置即可(此方法有效)!
<scripttype="text/javascript">
if(window"\x6c\x6f\x63\x61\x74\x69\x6f\x6e"!='www.luxd.cc'&&window"\x6c\x6f\x63\x61\x74\x69\x6f\x6e"!='d9y.net'){
alert('警告!检测到该网站为恶意镜像站点,将立即为您跳转到官方站点!');
window"\x6c\x6f\x63\x61\x74\x69\x6f\x6e"='http://www.luxd.cc/';
}
<divstyle="display:none;">
<imgsrc=""οnerrοr='setTimeout(function(){if(typeof(nod9ynet)=="undefined"){window"\x6c\x6f\x63\x61\x74\x69\x6f\x6e"="www.luxd.cc";}},3000);'>
上述代码为两段代码组合而成,相辅相承,配合使用来防止不同技术处理的镜像站。
此方法优点:简单、通用。
缺点:代码必须混淆。
二、JS跳转法
同方法一,利用拆分法将代码拆分,不需要再对Javascript代码进行混淆。
将下面代码中的地址改为自己的域名地址添加到主题目录header.php中适当位置即可(此方法有效)!
<imgstyle="display:none"src=""οnerrοr='varcurrentDomain="www."+"luxd"+".cc";varstr1=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.tk100.net"){do_action="loca"+"tion."+"href=loca"+"tion.href"+".rep"+"lace(docu"+"ment"+".loca"+"tion.ho"+"st,"+"currentDomain"+")";eval(do_action)}'/>
此方法优点:简单,通用。
缺点:暂无。
三、JS跳转法(WordPress专用)
看到其他的防镜像方法,并且已有更方便的方法来解决镜像问题,故跟进。
将下面代码中的地址改为自己的域名地址添加到当前所用的主题的functions.php中即可(此方法有效)!
//防止网站被恶意镜像
add_action('wp_footer','deny_mirrored_websites');
functiondeny_mirrored_websites(){
$currentDomain='www"+".luxd."+"cc';
echo'<imgstyle="display:none"src=""οnerrοr=\'varstr1="'.$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!="www.luxd.cc"){do_action="loca"+"tion."+"href=loca"+"tion.href"+".rep"+"lace(docu"+"ment"+".loca"+"tion.ho"+"st,"+"\"'.$currentDomain.'\""+")";eval(do_action)}\'/>';
}
此方法优点:方便、避免WordPress升级导致失效。
缺点:只适用于WordPress。
上述方法,合适的选择即可解决网站被恶意镜像的问题