评论区完全指南:怎么用、怎么防伪装,以及它凭什么更稳了
本站评论区的一站式说明。匿名和注册差在哪、头像右下角那枚角标为什么是唯一伪造不了的信号、注册登录怎么走、头像怎么换、以及哪些情况下你会收到通知邮件。原本分散在三篇里的内容合成了这一篇。
本站的评论区上线于今年 7 月,之后改过两轮:砍掉了一个第三方依赖,重写了登录和账号页,头像换成了直接上传。改动的记录原本散在三篇文章里,为了减少阅读成本,索性合成这一篇详细讲述一下。
这篇只回答一个问题:作为一个来留言的人,你需要知道什么。实现细节和我踩过的坑全收在最后一节,不关心就跳过。
一、评论区现在能干什么
| 你可以 | 说明 |
|---|---|
| 直接留言 | 不注册也能发,填个昵称就行 |
| 用 Markdown 和表情 | 加粗、代码块、链接、表情面板都支持 |
| 回复别人 | 支持楼中楼 |
| 收到回复通知 | 有人回你,邮件会到你手上(第六节) |
| 注册一个身份 | 评论头像右下角会带认证角标,别人伪造不了(第二节) |
| 管自己的评论 | 登录后发的评论能改口、能撤回 |
| 换头像 | 在账号页直接选图上传(第五节) |
底子是 Waline,全自托管在我自己的服务器上,数据库是一个 SQLite 单文件,不经过任何第三方服务。
还有一条你可能会察觉到:评论区的脚本不随页面一起下载,要滚到文章底部附近才开始加载。也就是说,你不看评论,就不为评论付流量。
二、匿名还是注册:先讲清这个
先讲它,因为它决定了后面几节对你有没有意义。
匿名评论有一条固有性质:头像和昵称是跟着邮箱走的,所以任何人填你的邮箱,就能顶着你的头像和昵称发言。这不是本站的缺陷,是一切允许匿名留言的系统都有的性质。
真正伪造不了的信号只有一个:登录之后发的评论会关联服务端的账号身份,网站把这个身份渲染成头像右下角的一枚角标。三种情况实测如下:

| 谁发的 | 头像右下角 |
|---|---|
| 匿名评论 | 干干净净,什么都没有 |
| 登录的普通用户 | 一枚绿色对勾 |
| 登录的管理员 | 一枚橙色齿轮 |
所以在本站请认准:头像带橙色齿轮的才是我,只有昵称和头像的,谁都可能是。我自己以后的评论都会登录后再发。
登录还有第二个好处:你能管自己发过的评论。匿名发出去的那些只有管理员能删,登录后发的会绑定到你的账号,写错了随时能改口或撤回——具体怎么操作见第四节。
提示
注册只需要一个能收信的邮箱。我不会核实你是谁,也不会拿它去做任何别的事。注册的唯一意义,就是给你一个别人伪造不了的身份。在意的话就注册一个,大胆注册。另外登录信息永不过期,也就是说你之后再也不需要再重新登录了,登录设备不设置数量限制
三、注册怎么操作
注册三步,全程不用离开当前页面:
一、填昵称、邮箱、密码
二、点「获取验证码」,几秒后邮箱会收到一个四位数字(收不到可以看一眼垃圾邮件)
三、把数字填进验证码框,点「注册并登录」
为什么没有一键登录了
Waline 默认接了一个第三方登录服务(作者运营的 oauth.lithub.cc),QQ、GitHub 那些一键登录就是它提供的。问题不在于它好不好用,在于它的接法:
这个服务被塞在请求链路的最前面、且没有任何开关。你每一次拉评论、发评论、甚至用邮箱登录,我的服务端都要先去问一次那台机器(作者运营的 oauth.lithub.cc),它一失败就直接报 502。
也就是说,你想看看别人说了啥,都得指望一台我完全不能掌控的机器当时活着。
现在这层依赖被彻底切断,评论区只依赖我自己这台服务器。代价是没有第三方一键登录了,但是评论区的可用性,从此只由我负责
提示
后续可以慢慢加上三方登录,Github比较好加,其他的也可以慢慢加
四、你的账号页
登录之后,/account 就是你的地盘
普通用户在账号页能做的事:
改昵称、网址、头像、密码,以及玩小游戏(其中数字炸弹是联机的,要登录才能进房间)
最关键的一点就是,你可以管理自己发过的评论!你登录之后发的评论,会在评论上多出「编辑」和「删除」两个按钮,写错了可以改、也可以删除!
另外,你可能会看到某些人的评论旁边挂着一个称号,那是我给的,如果你也想要称号,可以在网站登录之后在评论区找我要😘!
五、头像:换一张,现在只要点一下
默认头像从哪里来的
如果你没有设置过头像(在账户中),系统就会按你的昵称和邮箱去猜一个,规则按顺序命中:
| 条件 | 取到的头像 |
|---|---|
| 昵称是纯数字 | 当成 QQ 号,取那个号的 QQ 头像 |
否则,邮箱是 数字@qq.com | 当成 QQ 邮箱,取对应 QQ 号的头像 |
| 否则(绝大多数情况) | 按邮箱算哈希,去 Libravatar 取 |
第一条是最容易踩的坑:昵称只要全是数字,就会被当成 QQ 号。比如昵称填 163,系统就去取 QQ 号 163 的头像
至于「为什么我没传过头像却有头像」这件事本身,我另写过一篇讲透了:评论区头像是怎么跟着邮箱走的,想详细了解的可以点击去看
如何设置自己的头像
除了在这个文章:评论区头像是怎么跟着邮箱走的 里面相应的网站设置,本站还简化了这个流程,你只需按照下面步骤就可以快速更换头像:
1、登录账户,进入主页
2.1、点击头像这个表单项右侧的上传按钮直接上传图片(上传之后自动换上头像)
2.2、如果想用网络图片直接在输入框中填写自己的头像URL,然后点击更新按钮
上传之前,图片会在你自己的浏览器里处理一遍:按短边居中裁成正方形,缩到 512×512,再按原格式存成 JPEG 或 PNG。所以手机相册上传大图直接选就行,不会因为太大传不上去,存进去的也是一张干净方图,而不是你那张原图。
GIF 是例外,原样上传不做处理,所以动图头像不会被压成静止的一帧。
六、通知:哪些情况你会收到邮件
| 情况 | 你会不会收到 |
|---|---|
| 有人回复了你的评论 | ✅ 会 |
| 你在注册时点了「获取验证码」 | ✅ 会,一封四位数字的验证码 |
| 你自己回复自己 | ❌ 会比较邮箱,同一个人就跳过 |
| 你的评论被反垃圾判成了垃圾 | ❌ 整条通知链完全静默,连我都不会被提醒 |
你要是发现留言石沉大海,也可以直接找我。
邮件通知是怎么做到的
我有服务器,装个发信服务不就行了?不行。自建发信是一个很长期的工程:
一、云厂商默认封 25 端口。
二、新 IP 没有发信信誉。哪怕端口通了,一个从没发过信的地址,发到 Gmail、QQ 邮箱大概率进垃圾箱甚至直接被拒。
三、SPF、DKIM、DMARC 一个都不能少,还得自己签名、自己维护。
四、退信要自己处理。对方邮箱不存在、满了、拒收,你得有地方接这些回执,否则信誉越来越差。
提示
最关键的一点,我内存不够,装一个自己的发信服务器太大了!
所以我把发信这段交给了 Resend 这类事务邮件服务,免费额度是每天 100 封、每月 3000 封,对个人博客是够用了。
以上就是这个评论区的全部,欢迎来试试登录和头像上传,顺便留下你的想法!
评论
评论加载中……