Waline 评论安全
文章解耦 241024
:解耦自 【索引】定制自己的 Waline 评论系统
241024
:解耦自 【索引】定制自己的 Waline 评论系统关于评论安全博主分享自己的一些经验:
- 不法分子会利用特殊方法将违规内容评论在站点不存在的链接上。站长需及时接收评论通知并检查 Waline 后端及时处理。
- 不法分子的评论文本也许会很正常,但携带只有在外网才能查看的违规图片,导致一些站长在平时日常检视、邮件通知中没有留意。这种情况需要多加留心,我们可以在 Waline 后台点击评论的编辑按钮查看是否携带了不明链接。
- 参看官方文档完善更多的安全措施:服务端环境变量 | Waline
设置违禁词(服务端配置)
最近苦于梯子广告入侵,设置违禁词可以解决这个问题。
修改在 Github 上 Waline 文件 index.js
:
1 | module.exports = Application({ |
评论带有违禁词的统一当做垃圾评论处理,存在误判的话可以从垃圾箱中恢复。
设置 IP 黑名单
最近存在沙币乱评论,得试试黑名单功能了
配置方法和设置违禁词一样:
1 | module.exports = Application({ |
使用 Turnstile 验证码服务
Turnstile 服务注册
Cloudflare Turnstile 是一款替代 CAPTCHA 的免费工具,相比于谷歌 reCAPTCHA,它不需要繁琐的选择红绿灯消防栓之类的交互。
根据网站提示自己注册一个。
配置时安全域名需要同时添加网站地址和 Waline 服务端地址(不包含传输协议,即 http://
或 https://
)。
记住这两串 KEY,待会配置需要用到:
注意,打算关闭 Turnstile 时服务端环境变量和客户端配置要同时删去。免去不必要的错误 [1]。
服务端配置
以 Vercel 部署方案为例
打开 Vercel 中 waline 服务端项目的环境变量设置,新建这两个环境变量并输入对应的值。
环境变量名 | 解释 |
---|---|
TURNSTILE_KEY |
Turnstile key,须与客户端同时配置 |
TURNSTILE_SECRET |
Turnstile secret,服务端使用,不可泄漏 |
环境变量配置好后建议执行 Redeploy。
客户端配置
以 Hexo-Butterfly 主题为例
Butterfly 主题配置文件 waline 部分为:
1 | waline: |
请注意保持 waline.js
为较新版本,否则会出现未知错误
waline.js
为较新版本,否则会出现未知错误比如,在 Butterfly 主题配置文件使用 waline.js
的 cdn 链接版本至少为 https://mirrors.sustech.edu.cn/cdnjs/ajax/libs/waline/2.15.7/waline.min.js 。之前使用 2.15.1 版本会出现报错。
部署好后尝试评论,可以在 cloudflare 查看监控数据。
参考:
使用自己的 Askimet 反垃圾评论服务
Waline 默认开启了 Askimet 反垃圾评论服务,调用了 Waline 提供的 Akismet API Key。
如果需要的话,我们也可以注册一个自己的:
- 官网 Akismet – Spam Protection for Websites。网站使用的是 Wordpress.com 账号。
- API Key 管理面板:Account Management – Akismet
更多
为了给站长留足充分的时间处理恶意用户携带的危险链接,中间页的插件必不可少。强烈推荐阅读这篇文章:Hexo 博客与 Waline 评论区实现外链跳转中间页