mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
1087 字
3 分钟
YuuComments v0.1.5:标记垃圾并封禁来源

YuuComments v0.1.5 已经发布。这次更新聚焦于后台审核流程:管理员发现垃圾评论后,不仅可以将评论标记为垃圾,还可以直接封禁它的来源,阻止同一来源继续提交新评论。

相比单纯删除或隐藏评论,v0.1.5 补齐了从“发现垃圾内容”到“阻止来源再次提交”的审核闭环,同时保持了 YuuComments 轻量、无复杂依赖的设计。

标记垃圾并封禁来源#

Admin 评论管理新增了 Mark spam & ban / 标记垃圾并封禁 操作。点击后会打开按钮式确认对话框,管理员可以选择封禁目标:

  • Device fingerprint:封禁同一浏览器或设备,默认推荐选项。
  • IP hash:封禁对应 IP hash,可能影响同一网络中的其他用户。
  • Both:同时封禁设备指纹和 IP hash,适合明显的垃圾广告或机器人滥用。

封禁原因提供 Spam、Ads、Bot、Abuse、Offensive 和 Other 等预设,不再需要手动输入固定格式的内容。确认后,评论会被标记为 spam,可用的来源信息会写入封禁记录。

对于没有设备指纹的旧评论,后台仍然可以正常将其标记为垃圾,并清楚提示无法完成的封禁部分。

提交评论前检查封禁#

v0.1.5 新增了 comment_bans 表,并为评论增加 device_fingerprint 字段。新评论提交前,Worker 会检查:

  • 当前请求的 IP hash 是否处于有效封禁中;
  • 前端提交的设备指纹 hash 是否处于有效封禁中。

命中任一有效封禁时,后端会在创建评论前返回 403,避免垃圾评论进入数据库。

设备指纹由浏览器端使用用户代理、语言、屏幕信息和时区等基础信息组合后进行 SHA-256 计算。后端只接收最终 hash,不接收原始设备信息,也没有引入第三方追踪库。

独立的封禁来源管理#

Admin 后台新增了 Bans / 封禁来源 页面,用于查看和解除已有封禁。每条记录会显示类型、短 hash、原因、来源评论、创建时间、过期时间和当前状态。

当同一次操作选择 Both 时,相关的 IP 与设备封禁会在界面中合并为一张卡片,减少重复信息。管理员也可以通过卡片上的 Unban 操作解除对应封禁。

本次新增的 Admin API:

方法路径用途
POST/api/admin/comments/:id/spam-ban标记评论为垃圾并封禁来源
GET/api/admin/bans获取封禁来源列表
DELETE/api/admin/bans/:id解除封禁

Admin 中英文切换#

后台新增了中文和英文界面,并提供语言切换按钮。语言偏好会保存在浏览器本地,评论管理、举报管理、封禁管理和 Spam & Ban 对话框均会使用所选语言。

安全边界#

来源封禁是实用的审核工具,但并不是完整的身份识别系统:

  • 设备指纹可能被伪造、清除或省略;
  • IP hash 封禁可能影响共享同一出口网络的用户;
  • 未加盐的 IP hash 不能视为匿名数据;
  • 项目仍保留原始 IP 字段以兼容现有部署。

因此,建议管理员优先使用设备指纹封禁,并只在明确的垃圾广告或机器人滥用场景下使用 IP 封禁或 Both。

升级与部署#

已有部署在使用 Spam & Ban 前,需要先应用新的 D1 migration:

pnpm db:migrate:remote
pnpm deploy:backend

随后重新发布 dist/frontenddist/admin。新部署通过最新 schema 创建数据库时,会直接包含封禁表和设备指纹字段。

本次更新没有改变公开评论列表只返回 approved 评论的逻辑,也没有影响举报、五次举报转回 pending、Turnstile、Markdown、LaTeX、回复和点赞等现有功能。

YuuComments v0.1.5 已发布,完整变更与升级说明可查看 GitHub Release v0.1.5

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

YuuComments v0.1.5:标记垃圾并封禁来源
https://yuulog.org/posts/yuucomments-v015-blog-postzh-cn/
作者
星轨手札
发布于
2026-06-13
许可协议
CC BY-NC-SA 4.0

评论

评论加载中...

发表评论

部分信息可能已经过时

目录