上个周末帮朋友解决了个人博客被”恶意镜像”.小记一下解决过程.
站点被恶意镜像的影响我作为个人站长只想到如下:
- 小站比较注重SEO,恶意镜像可能降低权重
- 恶意镜像者添加了一些不应有的内容——如各种令人讨厌的弹窗,损害站点形象.
企业站更注重SEO,而如果新建成的企业站被恶意镜像,而恶意镜像者的域名权重高于你站。那么除了上述对个人站影响之外,当有人用搜索引擎搜索你企业相关信息时,那个恶意镜像者的域名可能排名更靠前,这对企业网络宣传十分不利。
#1.常规方法与局限性
nslookup
查恶意镜像站IP,站长后台屏蔽此IP(如使用.htaccess
),阻止其采集站点内容.但是这是有局限性的——
其一,恶意镜像者若使用CDN,你无法得到其IP。
其二,安装了HTTP服务的服务器(VPS)与恶意采集你站的服务器(VPS)并不是同一台,以下流程图会让你明白此言何意.
你的服务器(IP#0)→采集服务器(IP#1)→HTTP服务器(IP#2,域名解析到此IP)→读者的浏览器
我们可以对恶意镜像站的域名进行nslookup
,得知IP#2,但并非IP#2的服务器在进行恶意采集,而欲阻止被恶意采集,服务器端应屏蔽IP#1.
#2.新思路&实战.
获取并在服务器端屏蔽IP#1是解决之关键。它被用于访(采)问(集)你的服务器,故可以从你的服务器下手.
我本次遇到的情况中,站长使用虚拟主机,Apache HTTP Server和PHP5.6,因不是Dedicated Server或VPS,故很难得到Apache的Log,抑或是操作iptables.所以要通过PHP得知IP#1.
将如下代码写入文本档,保存为.php
,并访问即可获得Remote IP.
<?php /* 更改字符集 否则中文乱码 */ header("Content-type:text/html;charset=utf-8"); ?> <head><title>查看IP地址</title></head> <body> <p style="text-align:center;font-size:20px;"> 当前访问者IP为: <?php $ip=$_SERVER['REMOTE_ADDR']; echo $ip; ?> <a href="http://www.ip138.com/ips138.asp?ip=<?php $ip=$_SERVER['REMOTE_ADDR']; echo $ip; ?>" target="_blank">查看此IP地址位置</a> <!-- 通过IP138.com查找IP所在地 --> </p> </body>
以上代码最核心的就一句,用来获取并Print出访问者IP.
<?php $ip = $_SERVER['REMOTE_ADDR']; echo $ip; ?>
把这个文件保存成简单名称(如我,https://hardrain980.com/ip.php),放进根目录,首页做个链接(如我,放在页脚)
然后静静等待那个恶意镜像的站再次采集…最后进恶意采集你的站,点开上面的ip.php链接,应该便可得到IP#1。把它屏蔽掉。
回想起去年我应对无耻ISP宽带通把我站(当时本站没有SSL)劫持到其母公司鹏博士宽带的采集站uibe2010.com
及sdfste.com
时,我也使用了类似方法。
不错,学习了!恶意镜像真的是好烦人呀!特别是投放了联盟广告的站点,一旦被恶意镜像被封的可能就非常的大了!
不太了解广告联盟的机制
但就个人站点而言主要影响在于影响阅读体验
mark一下
我的网站只是活在,也不挂广告,近期也没输出内容
宁缺毋滥…
以前好像有人反代我的,倒也没放心上,没啥价值的东西反代只会浪费他的资源
嗯…但有些人以此牟利还投放不良广告败坏站点名声,我就遇到过鹏博士这家ISP这么干
這個要支持一下
惊现…去年一年几乎都没出现 没又被Check Meter吧…
我这种为了加速网站自己给自己网站搭建镜像结果被百度K站的大概很少了
貌似我自从上了SSL就被SBaidu给K站了
我的小破博客应该没人反代。。
也许吧…但是有些掉进钱眼的人也说不准.
SSL应该可以完全解决~
其实解决不了 只能解决ISP篡改网页(比如加个iframe插广告) 但解决不了被恶意采集 然后被反代
这帮人真是无恶不作啊
其实更多是通过权重在搜索引擎那压你 然后在恶意镜像的、你的站上投放广告(可能还有不良内容)来获取经济利益