前几天刷到品味苏州的一篇文章

品味苏州 pwsz.com ↗

某博主多年前在别人博客评论里留了自己的网址,后来网站不做了,域名过期被人捡走,解析到了博彩网站上。就因为这么一条早年留言,博主被当地网信办约谈了。

其实从自己做博客主题到现在,也尝试过大大小小的方案。前段时间把 Artalk 的评论后端重构成了 Cloudflare Worker,折腾得够呛。我这博客开到现在,评论攒了三千四百多条,最早的是 2021 年的。那会儿一起来玩的几个老友,域名早就换了好几茬了,现在点开他们当年的头像会去往哪?也算是随机开盲盒了。域名这个东西,过期之后就会被重新公开抢注,谁抢到算谁的,拿去挂什么内容,那就不是原主人能决定的了。

##第一版想法

我的第一反应是偷懒:写个 cron 定时任务,把超过 30 天的评论里的链接直接从数据库里抹掉,这样省事很多。后来思来想去,这样还是很不妥。第一就是抹了数据库,数据就真没了,如果 cron 的定时任务阈值要是定得不合适,想反悔都来不及;二是这个判断标准本身就不对,该判断的是这个人还在不在用这个域名,而不是这条评论发出去多久了。很多人半年才来评论一次,站点活得好好的,一刀切下去全误伤。

巧的是,前两天 2broear 也写了《新增站点外链访问确认》,也做了同样的事。

新增站点外链访问确认 blog.2broear.com ↗

评论区里扶苏补了一句:同一个邮箱换了新网址再来评论,应该以最新的网址为准,老的立刻失效。我觉得这个说法很在理,于是照着这个思路,把方案重新捋了一遍。

最后做成的样子

我评论后端是自己的(Cloudflare Worker + D1,改起来比较自由。

最后做成这样:

评论者如果超过 30 天没有评论,他的链接会打上一个休眠标记,访客再点他头像就不会跳转了,页面上会弹个提示,说超过多少天链接无法访问。哪天他回来了,随便评论一句,链接立刻恢复。而且现在他带新网址来评论的话,数据库里的链接会同步更新,所有历史评论的头像都指向新站,老域名直接作废。

写在最后

写这篇文章也是提醒一下各位,去翻翻自己评论区最早的那几页,点几个老头像看看现在通向哪里。

个人博客还是要做好及时审查,好在现在 AI 发力了,改起来也没有那么费事。