飞刀说

解决博客网站被克隆或恶意解析跳转的问题

 信息技术  2020-02-20  307  0

昨天晚上打开自己博客站点的百度统计后台看数据,发现有个来源域名的流量比其他来源大很多,我以为是使用我制作的Z-Blog主题的网友的博客站点链接过来的。好奇之下,我打开了那个域名。

当我打开这个站点后,我还以为我看花眼了,这个站怎么和我的站点一模一样?

我的第一反应是网站被别人恶意地镜像复制了,很多站长都遇到这类的问题。

经过一段时间的搜索学习,我得知发生这种情况,还不一定是被镜像复制了,别人的域名能看到和我的网站一模一样内容的这种现象,一般可能是以下几种原因造成:

1.整个站点被别人用采集器复制过去了;

2.别人用域名解析到网站的服务器上,从而实现用别人的域名打开了源站点;

3.别人的域名设置了针对域名的跳转。

第一种情况是内容被人家复制了一份,网络上存在两台服务器中存放同样的网页内容,第二和第三种情况是内容没有被复制,只是那些山寨的域名自己指向源网站了。

在搜索的过程中,我通过site命令看了一下这个域名竟然在百度的收录情况,已然都有了一条以我网站内容收录的信息,于是赶紧想办法解决。

1.网站被镜像复制

网站被复制克隆是我的第一反应,这种情况一般是有采集软件(爬虫)过来读数据。

针对这种情况,站长需要设法找到过来爬取内容的IP,然后在服务器上将其列出不允许访问的黑名单。

这类软件一般周期性地过来读取内容,而且读取的页面较多,可以通过这种思路找出问题IP。

我在自己的网站上更新一点信息,然后马上去看山寨域名站点,结果山寨的域名下也是秒更新,我基本上就排除了网站被采集软件复制的可能性,推测是山寨域名直接指向了我的网站了。

2.域名恶意解析到服务器IP

解决山寨域名恶意指向网站的问题的思路就是在服务器上限定只允许本站的域名接入,禁止通过IP方式访问网站即可。一般这类域名恶意指向的情况,都是山寨域名直接指向了网站的IP地址。

我的网站用的是Nginx做的服务,我在网上找了一下,基本上就是在配置文件中新增一个server节点,将合法域名之外的访问全部返回404,或者用nginx自己的一个444错误码,代码如下:

server
{
  listen 80 default_server;
  server_name _;
  return 444;
}

如果是用的宝塔面板,可以通过可视化界面新增一个网站,将其设置为默认网站,并在这个默认网站的配置文件上新加上面的配置,这样,没有通过指定域名的访问,都将去访问这个返回444的“默认网站”。

需要注意的是,有时候配置了上述信息,可能还不生效,这时要注意系统中多个Nginx配置文件的执行顺序。

一般系统中会在多处有配置文件,比如我们用的宝塔面板,系统安装了Nginx后,先有一个默认的配置文件:/www/server/nginx/conf/nginx.conf,随着我们在界面上新增网站,每个网站还会有以网站名命名的配置文件,在/www/server/panel/vhost/nginx/网站名.conf这个路径,默认配置文件通过一个include命令将这些配置文件连接起来。

其他的诸如Apache或者IIS服务器均有相应的配置方法。

我在配置上述信息后,还是没能阻止山寨域名的访问,于是我也排除了它IP访问的可能性。

3.山寨域名通过反向代理指向源域名

这类的山寨域名一般是通过配置反向代理的方式指向源域名,这样在浏览器中输入源域名的时候,浏览器显示的内容是源网站的内容,域名却是山寨域名。

要检测这种情况,只需把自己的域名停止解析,或暂时指向一个其他地址,然后去看山寨域名的指向情况即可,如果山寨域名也跟着指向其他地址,那就可以确定是山寨域名指向本域名了。

这类情况一般还会通过cdn来伪装,很难查到域名的来源,像是这次我遇到的中国山寨域名,就是通过国外免费的cdn服务cloudflare来中转的。

针对这种情况的解决方法是通过代码来判断域名,如不是本站域名则跳转回本网站。

JavaScript代码如下:

<script type="text/javascript">
  var hostname=top.location.href;
  if(hostname.indexOf('feidaoshuo.com')<0)
  {
    window.location.href='https://www.feidaoshuo.com'; 
  }
</script>

至此,问题得以解决。

 留言评论

天上的神明和星辰,人间的艺术与真纯,
我们所敬畏和景仰的,莫过于此。

网站分类
文章归档
最新留言
友情链接

天上的神明和星辰,人间的艺术与真纯,
我们所敬畏和景仰的,莫过于此。

网站分类