评论验证码
验证码可以防止机器人脚本发送评论,如果你的网站经常收到大量垃圾评论,可以考虑开启验证码。
支持的验证码包括:
图片算数验证码: 通过图片显示简单的算术题,目前生成的是 10 以下的加法。Cloudflare Turnstile: 通过点击复选框完成验证,如果你的网络和浏览器环境没有问题,可以自动完成验证。
图片验证码开启就可以使用,Cloudflare Turnstile 需要注册账号才能使用。
图片验证码
图片验证码可以防住大多数的通用评论脚本,但是如果是专门为你的网站编写的脚本 + OCR 就很难防住了。
考虑到用户体验,我的图片验证码不会有太复杂的干扰,还是比较容易看清的。
下面是图片验证码效果:

点击验证码图片可以更换验证码。
生成验证码使用密钥 + 哈希算法对结果进行加密,然后发送到前端,最后和输入的验证码一起提交验证,验证码有效期 5 分钟,不需要 session 存储。
你可以在 评论验证码密钥 输入用于加密的密钥,默认使用 12345678 。
Cloudflare Turnstile
Cloudflare Turnstile 是 Cloudflare 的验证码服务,类似于 Google 的 reCAPTCHA,但是 Turnstile 体验要比 reCAPTCHA 好,不会要求选择图片,而且 Turnstile 没有被墙。
Cloudflare Turnstile 是免费使用的,只需要到 https://www.cloudflare.com/products/turnstile/ 注册账号,获取 Sitekey 和 Secret key 就可以使用了。
下面是 Cloudflare Turnstile 的效果:

Cloudflare Turnstile 会根据你的网站和浏览器环境,浏览方式,包括鼠标轨迹和键盘之类的来分析验证,应该很少有评论脚本能通过验证。
有的运营商宽带晚上访问 Cloudflare Turnstile,速度可能会比较慢。