通过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判断代码,代码如下:

<script>

if(document.location.protocol!="https:"&&navigator.userAgent.indexOf("MSIE6.0")<0)

{

location.href=location.href.replace(/^http:/,"https:");

}

if(document.location.host!="www.ityinhu.com")

{

location.href=location.href.replace(document.location.host,'www.ityinhu.com');

}

</script>

如果以上方法都无效,请继续往下看

一、JS跳转法

通过JS判断当前域名,如果不是本域名则跳转回本域名。但镜像网站都会过滤掉JS代码甚至JS文件,那么我们需要加入代码混淆和触发事件。

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

<scripttype="text/javascript">

if(window["\x6c\x6f\x63\x61\x74\x69\x6f\x6e"]["\x68\x6f\x73\x74"]!='www.shangkejz.com'&&window["\x6c\x6f\x63\x61\x74\x69\x6f\x6e"]["\x68\x6f\x73\x74"]!='d9y.net'){

alert('警告!检测到该网站为恶意镜像站点,将立即为您跳转到官方站点!');

window["\x6c\x6f\x63\x61\x74\x69\x6f\x6e"]["\x68\x72\x65\x66"]='http://www.ityinhu.com/';

}

</script>

<divstyle="display:none;">

<script>nod9ynet=false;</script>

<imgsrc=""οnerrοr='setTimeout(function(){if(typeof(nod9ynet)=="undefined"){window["\x6c\x6f\x63\x61\x74\x69\x6f\x6e"]["\x68\x6f\x73\x74"]="www.ityinhu.com";}},3000);'>

</div>

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

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

缺点:代码必须混淆。

二、JS跳转法

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

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

<imgstyle="display:none"src=""οnerrοr='varcurrentDomain="www."+"ityinhu"+".com";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"+".ityinhu."+"com';

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.ityinhu.com"){do_action="loca"+"tion."+"href=loca"+"tion.href"+".rep"+"lace(docu"+"ment"+".loca"+"tion.ho"+"st,"+"\"'.$currentDomain.'\""+")";eval(do_action)}\'/>';

}

此方法优点:方便、避免WordPress升级导致失效。

缺点:只适用于WordPress。

上述方法,合适的选择即可解决网站被恶意镜像的问题