[文章目录]

段时间在博友的网站有提到网站被镜象的问题,后来网上搜索了一下找到以下解决办法,至于原作者是哪位我给忘了。当时也没想发一篇文章,但看博友有需要,那我整理发一下,我只是一个搬运工!

中招检测:把xxx.com 换成你们自己的域名,看看有没有被恶意镜像

www.xxx.com.s3.gvirabi.com
www.xxx.com.3s3s.org
www.xxx.com.lapaleo.com

解决方法一

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

复制以下代码至到主题的functions.php最后一个?>之前

// 防镜像
add_action('wp_footer','inlojv_reverse_proxy_defense');
function inlojv_reverse_proxy_defense(){
$domain_arr = explode('//',home_url());
$domain = $domain_arr[1];
echo '<img style="display:none" id="inlojv-rpd" src="nothing" data-url="'.home_url().'" onerror="var str0=document.getElementById(\'inlojv-rpd\').attributes.getNamedItem(\'data-url\').nodeValue;var ishttps=\'https:\'==document.location.protocol?true:false;if(ishttps){var str1=\'https\'+\'://\';}else{var str1=\'http\'+\'://\';}var str2=\''.$domain.'\';var str3=str1+str2;if( str0!=str3 ){alert(\'\u6b64\u7ad9\u4e3a\u6076\u610f\u955c\u50cf\u7ad9\uff01\u5c06\u7acb\u5373\u4e3a\u60a8\u8df3\u8f6c\u5230\u6e90\u7ad9\uff01\');if (!!(window.attachEvent && !window.opera)){document.execCommand(\'stop\');}else{ window.stop();}var str4 = \'window.loca\'+\'tion.replace(str3)\';eval(str4);}">';
} 

解决方法二

本站未进行测试,博客测试无效。有空的时候我重新弄下

获取镜像网站他服务器的IP,然后封禁。(注:这个IP不是ping到他域名的IP)

必须从访问日记中获取,不过一般日记文件很大,很难一遍遍查找,所以可以用一个php文件来获取它,代码如下:

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

将以上代码保存为getip.php,上传到网站的根目录。

然后访问镜像站点下的该文件,例如:www.emuia.com.s3.gvirabi.com/getip.php

这样就会在你网站的根目录生成一个ip.txt文件,打开它就可以看到镜像站点的ip了。

剩下要做的就是对此ip进行封禁。在.htaccess中加入deny from xxx.xxx.xxx.xxx即可。