网站被恶意镜像解决方法

真心搞不懂,我这一个破博客居然会有人镜像,真是吃饱了撑啊!刚开始发现 Google 搜索博客会出现一下稀奇古怪的结果,没多在意,也不知道是怎么回事。后来知道那是被镜像了,然后 Google 找到了解决办法,折腾上去几天,好像真有点效果。

参考

1、张戈博客 - 分享一个网站防镜像以及解决七牛静态页面跳转的js方案

2、龙笑天下 - 网站被恶意镜像怎么办 一段代码轻松搞定(全面版)

可用方法

.htaccess 阻止 IP(龙笑天下)

这个方法简单粗暴,但是镜像站换了 IP 就失效了。我主要用来对付这货:https://fireproxy.crushus.com/cyhour.com,实测上面参考的代码除了阻止 IP 外,对这个站都无效。

获取镜像服务器 IP

注:这个 IP 不是 ping 到他域名的 IP!!!

复制如下代码,新建一个 php 文件,并命名为「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($handle);
?>

然后访问你网站的镜像站点,在地址后面加 /ip.php,在你的网站根目录就能找到 ip.txt 文件,复制里面的 IP 地址。

修改 .htaccess 文件

在后面加上如下代码(xxx.xxx.xxx.xxx 修改为上面获得的 IP)

Order Deny,Allow
Deny from xxx.xxx.xxx.xxx

如果你使用 CDN,可以直接在 CDN 后台添加 IP 黑名单。这个时候你再刷新一下镜像站点,如无意外,已经 403 了。

csdn.net 版本

<div style="display:none;">
<img src="" onerror='setTimeout(function(){if(!/(csdn.net|iteye.com|baiducontent.com|googleusercontent.com|360webcache.com|sogoucdn.com|bingj.com|baidu.com)$/.test(window.location.hostname)){window.location.href="\x68\x74\x74\x70\x73\x3a\x2f\x2f\x77\x77\x77\x2e\x63\x73\x64\x6e\x2e\x6e\x65\x74"}},3000);'>
</div>

结合 WordPress 版本:

// http://php.net/manual/zh/function.bin2hex.php url 字符串转十六进制
if ( !function_exists( 'str2hex_encode' ) ) {
function str2hex_encode($data) {
$data = "\\x" . substr(chunk_split(bin2hex($data),2,"\\x"),0,-2);
return $data;
}
}

// 网站防止被恶意镜像 https://cyhour.com/510/ 最后更新时间:20180915
add_action('wp_footer','theme_deny_mirrored_websites');
function theme_deny_mirrored_websites(){
$myurl = parse_url(esc_url( home_url('/') ), PHP_URL_HOST);
$myurl = preg_replace("/^www\./", "", $myurl); //eg:cyhour.com
//镜像站超时 3600ms 跳转回源站(蜘蛛例外)
echo '<div style="display:none;"><img src="" onerror=\'setTimeout(function(){if(!/('.$myurl.'|google.com|googleusercontent.com|360webcache.com|sogoucdn.com|bingj.com|baiducontent.com|baidu.com)$/.test(window.location.hostname)){window.location.href="'.str2hex_encode(esc_url( get_permalink() )).'"}},3600);\'></div>';
}

WordPress 专用版(龙笑天下)

/**
* 网站被恶意镜像 http://www.ilxtx.com/mirrored-website.html 最后更新时间:20171022
*/
add_action('wp_footer','theme_deny_mirrored_websites');
function theme_deny_mirrored_websites(){
$currentDomain = 'cyhour." + "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 && str3!="cache.baiducontent.com" && str3!="webcache.googleusercontent.com" && str3!="c.360webcache.com" && str3!="cncc.bingj.com" && str3!="snapshot.sogoucdn.com" ){ do_action = "loca" + "tion." + "href = loca" + "tion.href" + ".rep" + "lace(docu" +"ment"+".loca"+"tion.ho"+"st," + "\"' . $currentDomain .'\"" + ")";eval(do_action) }\' />';
}

注意:旧版本 onerror 死循环会造成浏览网页的电脑高负载(CPU飙升),详见:博客网页导致电脑CPU飙升的问题解决记录


禁止 UA 为空或含有 PHP 的请求(张戈博客)

if(!is_admin()) {
add_action('init', 'deny_mirrored_request', 0);
}
function deny_mirrored_request()
{
$ua = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';
if( ( empty( $ua ) ) || preg_match('/PHP/i', $ua)) {
header("Content-type: text/html; charset=utf-8");
wp_die('请勿采集本站,因为采集的站长木有小JJ!');
}
}

福利▼展开

http 跳转 https 的 js 代码(张戈博客)

<script type="text/javascript">
/* 如果当前是http访问,那么跳转到对于的https页面 */
if (document.location.protocol != "https:") {
location.href = location.href.replace(/^http:/,"https:");
}
</script>

完。

声明:除非注明,常阳时光文章均为原创
本文地址:https://cyhour.com/510/
转载时必须以链接形式注明原始出处。
Views: 1.9K Tags:  , 

Comments:56

  1. 我的估计不会有镜像。

    2017.04.16 15:49 # 回复
    1楼
  2. 我的乱七八糟的,咱不担心这个,哈哈!

    2017.04.16 21:20 # 回复
    2楼
  3. 还有这样的事? 不过估计我这里也有问题。症状:明明早就不用多说了。结果访问网页(嵌入多说)时候汇报有10条新回复。死活不知道从哪里来的。干脆登陆多说,删除站点完事。

    2017.04.16 21:49 # 回复
    3楼
    • @路杨 你这站倒还好,这货镜像出来的都是乱码:https://fireproxy.crushus.com/easun.org/

      2017.04.16 23:29 # 回复
      • @老杨 哈哈。估计是因为我的每个页面开头都有 【html lang=”en”】。但是后面指定了 utf-8 ,这样造成了机器人误判。。

        2017.04.17 12:23 # 回复
  4. 收藏

    2017.04.16 23:05 # 回复
    4楼
    • @老虎 可以用上,一般都会有镜像的。见:https://fireproxy.crushus.com/travel.synyan.net/

      2017.04.16 23:28 # 回复
  5. 不折腾了,爱咋咋的,这世界 SEO 垃圾太多了。

    2017.04.17 12:35 # 回复
    5楼
  6. 镜像网站会被谷歌惩罚的吧。我的没啥价值就懒得防了……

    2017.04.17 16:19 # 回复
    6楼
  7. 去年我的网站也被镜像了,处理后就没被镜像过了

    2017.04.17 17:14 # 回复
    7楼
  8. 我的有吗?麻烦搜索一下 :) 你这方法不错,希望能用上,哈哈。

    2017.04.17 22:22 # 回复
    8楼
  9. 尔等网站太出名了,我等P站没人镜像~哈哈

    2017.04.18 11:56 # 回复
    9楼
  10. 我的破站也被镜像……
    但是这样做对他有益处吗?

    2017.04.18 14:23 # 回复
    10楼
    • @皮皮 有吧?如果内容好的话,搜索就进入他的网站了,然后他的站很多广告。。。

      2017.04.18 16:14 # 回复
  11. 貌似这个好奇怪,不会是自动抓取吧?

    2017.04.19 13:55 # 回复
    11楼
    • @夜枫 它的官网介绍像是一个在线代理工具:UnBlocked Every Blocked, Censored Website, Free | Crushus.com。

      2017.04.19 16:23 # 回复
  12. 快去举报
    fireproxy.crushus.com/t66y.com

    2017.04.20 14:30 # 回复
    12楼
  13. 学习了

    2017.04.20 17:53 # 回复
    13楼
  14. 看了福利我就放心了

    2017.04.24 08:02 # 回复
    14楼
  15. 怎么搜?帮我看看我的博客有没有被镜像吧。

    2017.04.26 14:18 # 回复
    15楼
    • @秦大叔 你的好像没有,一般搜索引擎搜索:intitle:网站首页完整名称 就能看到有没被镜像了。

      2017.04.26 17:12 # 回复
  16. 我很早就被镜像了,一直js守护

    2017.04.28 22:18 # 回复
    16楼
  17. 对于镜像,我是宁杀一千也不放过一个~~这个镜像,今晚解决。

    2017.04.30 22:56 # 回复
    17楼
  18. JV

    inlojv大法好,哈哈

    2017.05.03 15:45 # 回复
    18楼
  19. 包括一些大站点都是有的

    2017.05.04 10:04 # 回复
    19楼
  20. 好神奇,我的竟然也有~

    2017.05.07 15:19 # 回复
    20楼
  21. 我每三个月屏蔽一批。。。。

    2017.06.03 18:19 # 回复
    21楼

发表留言

炒蛋:Vultr 送$25 | 搬瓦工年付$19补货,优惠码 BWH26FXH3HIQ | 推荐VPS信息