这是一个轻量级的 Typecho 插件,通过邮箱、域名、关键词黑名单自动拦截垃圾评论。
开发此插件的由来
写这个插件是有原因的,连续两天,一直有个鸟人来我博客发留言(最新两篇文章),他的主要目的其实是发他的算命网站链接。我后台删了他的留言他第二天又来发了。首先不能用禁IP的方式,因为我发现他IP是广西联通(一般都是家庭宽带,这个IP只是他临时的,封了也没用,而且还可能会造成整个广西联通的网都来不了)。一般他会发两条留言,一篇文章一条,留的QQ邮箱都是一样5652xx5524@qq.com,但是在两篇文章中的留言名字改了,配套的网址也不一样,一个叫做免费算命,留的网址是https://www.resoxxxg.cn/,一个叫做姓名测试打分,留的网址是https://www.tiatixxxxxiao.com/。于是针对这个垃圾玩艺,这套插件应运而生。
功能
- 环境要求 — 在 Typecho 1.3 上测试通过,其他版本请自行测试
- 邮箱拦截 — 支持部分匹配,如
qq.com可拦截所有 QQ 邮箱 - 域名拦截 — 拦截评论者填写的网站域名
- 关键词拦截 — 拦截昵称或正文中的关键词
两种拦截方式:
- 直接拦截 — 匹配规则时拒绝评论,前台提示错误
- 标记为垃圾 — 匹配规则时标记为
spam状态,前台不报错也不显示,后台可审查
安装
- 将
SpamBlocker文件夹上传至/usr/plugins/ - 登录 Typecho 后台,进入 控制台 → 插件
- 找到 SpamBlocker,点击 启用
- 点击 设置,填写拦截规则
使用方法
在插件设置页面填入需要拦截的内容,每行一条:
# 拦截邮箱(部分匹配)
spammer@example.com
qq.com
# 拦截域名(部分匹配)
spam-site.cn
# 拦截关键词
免费算命选择拦截方式后保存即可生效。
数据存储
配置存储在 typecho_options 表中,name = 'plugin:SpamBlocker',值为序列化数组。无需手动建表或改表结构。
拦截原理
通过 Typecho_Plugin::factory('Widget_Feedback')->comment 钩子,在评论提交前对邮箱、网址、昵称、正文进行匹配检查。
开源协议
MIT
已在github上开源, Github开源地址
评论 (0)