pushpasta/simple-honeypot-cf7
GitHub: pushpasta/simple-honeypot-cf7
为 Contact Form 7 提供基于蜜罐字段、时间检查、工作量证明和自定义规则的本地化垃圾信息防护插件。
Stars: 0 | Forks: 0

# Contact Form 7 的简单蜜罐
为 Contact Form 7 提供轻量级的蜜罐、时间检查、工作量证明和基于规则的垃圾信息防护。
    
| 属性 | 值 |
|----------|-------|
| 贡献者 | pushpasta |
| 捐赠链接 | [https://github.com/pushpasta/simple-honeypot-cf7/?sponsor](https://github.com/pushpasta/simple-honeypot-cf7/?sponsor) |
| 标签 | contact form 7, cf7, honeypot, antispam, spam protection, bot protection, proof of work, hashcash |
| 最低要求版本 | 6.7 |
| 测试至 | 7.0 |
| 稳定版标签 | 1.0.0 |
| PHP 要求 | 7.4 |
| 需要的插件 | contact-form-7 |
| 许可证 | GPLv2 or later |
| 许可证 URI | [http://www.gnu.org/licenses/gpl-2.0.html](http://www.gnu.org/licenses/gpl-2.0.html) |
## 描述
为 Contact Form 7 提供隐藏蜜罐字段、时间检查、工作量证明、自定义规则和垃圾信息报告功能。所有操作均在您的服务器上运行——无需外部服务,也不跟踪访客。
### 功能
* 🪤 为 Contact Form 7 添加 `[honeypot]` 表单标签,支持每个表单包含多个字段。
* 🔒 服务器端 token 验证——验证期间无需查询数据库。
* 🧩 动态字段名称会定期变化,对缓存友好,且让机器人更难预测。
* ⏱️ 时间检查会标记那些比人类填写表单所需时间更短就提交的内容。
* 🧠 可选的工作量证明——浏览器在提交前解开一个计算谜题。人类几乎察觉不到,但机器人需要付出高昂代价。
* 🛡️ IP 和邮箱屏蔽规则,支持通配符和 CIDR。
* 🔐 所有检查均在本地运行——无外部 API 调用,无访客跟踪,无数据共享。
* 🔁 将所有设置(全局 + 单个表单)作为单个 JSON 文件进行导入和导出。
* 📝 记录被拦截的垃圾信息,包含表单、IP、user agent 和拦截原因等详细信息。
* 🧾 将垃圾日志的原因添加到 CF7 的提交记录中,以便 Flamingo 等记录存储插件使用。
## 安装说明
### 手动安装
1. 将 `simple-honeypot-cf7` 文件夹上传到 `/wp-content/plugins/` 目录。
2. 在插件页面激活“Simple Honeypot for Contact Form 7”。
3. 确保 Contact Form 7 已安装并激活。
4. 在 CF7 表单中添加 `[honeypot]` 字段。
## 常见问题
## 截图
### 常规设置
配置时间阈值、token 有效期、工作量证明复杂度和数据保留期限。

### 规则
创建 IP 或邮箱规则,以拦截特定地址或模式。

### 报告
查看被拦截的提交统计数据,包含原因和表单分类明细。

### 表单设置
针对单个表单覆盖时间检查设置。

### 垃圾日志
审查每条被拦截提交的详细记录,包括原因、IP 和 user agent。

## 更新日志
### 1.0.0
* 首次发布。
## 升级提示
### 1.0.0
* 首次发布。
蜜罐是如何工作的?
插件会添加一个或多个对正常访客不可见的隐藏字段。自动化机器人通常会填写这些字段,从而在处理之前就能识别并拦截垃圾提交。您可以在单个表单中添加多个蜜罐字段。什么是工作量证明,它有什么作用?
工作量证明要求访客的浏览器在表单提交前花费少量的 CPU 时间来计算 hash。在默认复杂度下,这大约需要 50–100 毫秒——人类几乎察觉不到——但会迫使自动化垃圾工具消耗大量资源。它可以在设置中启用或禁用,并支持自定义难度。需要启用 JavaScript 并使用安全(HTTPS)连接。插件会拦截提交过快的表单吗?
是的。插件会验证页面加载与表单提交之间的时间间隔。如果提交速度比设定的最短时间还要快,就会被标记为垃圾信息。时间检查可以继承全局设置,也可以针对单个表单进行启用或禁用。支持哪些类型的垃圾拦截规则?
插件支持 IP 地址(包含通配符和 CIDR)和邮箱地址(包含通配符)。如果需要关键词或正则模式过滤,请使用 WordPress 的“禁止评论关键词”设置(设置 → 讨论),Contact Form 7 会自动检查此项。插件会将表单数据发送给第三方服务吗?
不会。所有垃圾检查均在您的网站本地执行。不会向外部服务发送任何表单提交记录或访客数据。蜜罐的值会被存储在 Flamingo 等记录插件中吗?
默认情况下,蜜罐字段会在数据存储前从提交内容中移除。您可以选择在插件设置(在“数据”下)中启用蜜罐值的存储功能,以便用于调试或安全分析。为什么提交的内容会被标记为垃圾信息?
垃圾日志会显示是哪条规则触发了检测,例如填写了蜜罐字段、未通过时间检查、包含了拦截关键词,或者是触发了自定义的 IP 或邮箱规则。卸载插件时会发生什么?
插件的所有数据(包括设置、统计数据和单个表单的配置)都会从数据库中删除。唯一的例外是已经记录在日志中的垃圾提交记录,这些内容会被保留。标签:Bot防护, Contact Form 7, ffuf, OpenVAS, PHP, WordPress插件, 反垃圾信息, 文件完整性监控, 蜜罐防护