事件起因

今天在 V2EX刷到个帖子,楼主发现自己的小网站被翻译成繁体全部搬运到了另一个域名:

有个域名 CNAME 指向了我的,是在做什么测试吗?

通过网友的回复,发现近期很多站长都遇到了这种情况:

用谷歌搜索了一下我的站点名称,发现我也中招了:

2024 15 (1)

并且我发现镜像我内容的这个站点有如下几个特征:

  1. 使用国内IP无法访问(404),需开代理使用境外网络
  2. 网页内容实时搬运,只是把简体中文全部翻译成了繁体中文
  3. 将我网站中所有 原域名 全部替换成字符串 /

解决方法

在网站中添加域名校验和跳转代码:

1
2
3
4
5
6
7
8
var hostname1 = 'blog' + '.' + 'meta' + '-' + 'code' + '.top'
var hostname2 = 'barry' + '-' + 'flynn' + '.' + 'github' + '.' + 'io'
var hostname3 = 'localhost'
var hostnameNow = document.location.hostname
if (hostnameNow !== hostname1 && hostnameNow !== hostname2 && hostnameNow !== hostname3) {
var sourceDomain = 'https://' + hostname1
window.location.href = sourceDomain + document.location.pathname
}

我的博客有两个部署域名,所以仅允许通过这两个域名进行访问(以及本地 localhost),其他域名下将自动跳转到源站点。

并且为了防止非法镜像站点替换掉其中的域名,上方代码做了拼接处理。