mosparo 1.5.13 介绍与选型指南
mosparo 1.5.13 介绍与选型指南:定位、防垃圾判定手段、技术栈与资源需求实测、版本与许可取证(MIT,GitHub 313 星)、与 reCAPTCHA/hCaptcha/Turnstile 的差异定位及量化选型对比,附本栏导航。
mosparo 1.5.13 介绍与选型指南
本文是 mosparo 专栏的认知篇。所有版本号、许可、运行时要求、GitHub 数据均于 2026-10-28 通过官方渠道(mosparo.eu 官网、GitHub 仓库/Releases 页、官方文档站)与本地实测逐一核实,文中标注了每项数据的取证来源。参数调优与命令运维分别见本栏其他三篇。
一、mosparo 是什么
mosparo(官方口号:the modern spam protection tool)是一款开源、可完全自托管的表单防垃圾系统,由 mosparo Core Developers 维护,官网 mosparo.eu,代码托管于 github.com/mosparo/mosparo(来源:官网与仓库 README,查询日期 2026-10-28)。
它解决的问题是:网站上的联系表单、评论框、注册页每天被机器人灌垃圾。传统做法是上验证码(captcha)让用户解题自证人类,而 mosparo 的思路完全不同——像邮件网关的反垃圾过滤器那样,对表单提交的内容做规则匹配,机器人不用解题,但垃圾提交会被规则直接拦下。
官方 README 对其工作方式的描述(直译,来源同上):
垃圾过滤在邮件服务器上是标配,邮件网关扫描整封邮件来判断是否为垃圾邮件。Web 表单的处理更简单:表单各字段是分离的,可以逐个字段检查。机器人在某个字段里必须写下它的网址或推广语,因此只要存在对应规则,检测会非常快。
一句话概括定位:mosparo 是 reCAPTCHA / hCaptcha 这类验证码服务的自托管替代品,把"考验用户"换成"审查内容"。
二、防垃圾的判定手段
根据官方仓库 README 与本栏实测实例中的项目配置导出(实测时间 2026-10-28,详见《mosparo 1.5.13 配置参数详解》),mosparo 单次提交会经过多层检测:
| 检测层 | 作用 | 默认值(1.5.13 实测导出) |
|---|---|---|
| 规则匹配(规则包/自定义规则) | 按关键词、正则、URL、邮箱、IP 等规则逐字段比对,命中即加分 | 规则包需自行挂载,spamScore 阈值默认 5.0 |
| 最短提交时间 | 表单渲染到提交的间隔过短判为机器行为 | 开启,minimumTimeSeconds = 10 |
| 蜜罐字段 | 页面里藏一个人类看不见的字段,机器人填了就暴露 | 开启 |
| 提交频率延迟 | 时间窗内请求数超限则逐次加长响应延迟 | 30 秒内 30 次后触发,延迟 60 秒,倍率 1.5 |
| 锁定 | 频率再超标直接封禁一段时间 | 60 秒内 60 次后锁 300 秒,倍率 1.2 |
| 工作量证明(PoW) | 前端需完成哈希计算才获提交令牌,提高机器成本 | 复杂度 5,动态复杂度上限 7 |
| 相同提交检测 | 时间窗内内容重复的提交判为垃圾 | 300 秒内 3 次 |
值得强调:除上述手段外,所有提交数据默认加密存储,并在固定周期后删除——官方明确所有数据在 14 天后删除(因计划任务执行时机可能延至 15 天),这与其"只收集必要数据"的项目目标一致(来源:仓库 README,2026-10-28)。
三、技术栈与资源需求(实测)
以下数据来自 2026-10-28 对 v1.5.13 发行包在本栏实测环境(Debian 12 + Apache + PHP 8.2 + MariaDB 10.11)的实装:
| 维度 | 实测结论 |
|---|---|
| 语言/框架 | PHP(要求 ≥ 8.1.10)/ Symfony 6.4.48 LTS(bin/console about 实测输出) |
| 数据库 | MySQL / MariaDB、PostgreSQL、SQLite 三选一(安装向导下拉框实测仅此三项;README 同此结论) |
| Web 服务 | 任意可跑 PHP 的服务端,实测 Apache 2.4 + mod_php;文档根目录需指向发行包的 public 子目录 |
| PHP 扩展 | ctype、curl、dom、filter、gd、iconv、intl、json、libxml、openssl、pcre、pdo、pdo_mysql 或 pdo_pgsql(或 pdo_sqlite)、simplexml、tokenizer、xml、zip;可选 memcached、posix、redis、sodium、Zend OPcache(来源:仓库 README Requirements 节,2026-10-28) |
| 磁盘占用 | 官方要求"少于 100 MB";实测发行包 zip 约 21 MB,解压后远低于该限值 |
| 安装方式 | 官方发行包(zip,依赖已打包,无需本地 Composer)或源码安装(需 git + Composer + Node.js 18) |
运行时角色:mosparo 是一个独立部署的 Web 服务(不是嵌进业务程序的库)。业务站点在前端引入一段 JS(指向 mosparo 实例)渲染验证框,后端拿项目密钥调用 mosparo 的验证 API 判定结果。它自带管理后台(项目管理、规则包、提交记录、统计),数据落库。
四、版本与许可(取证)
- 最新版本:v1.5.13,发布于 2026-10-26,官方定位为安全修复版本,修复了 MySQL 场景的
SAVEPOINT报错、验证令牌竞态、IP 类安全特性按 IPv6 /64 子网计数等问题(来源:GitHub Releases 页 v1.5.13 说明,查询日期 2026-10-28)。 - 许可:MIT。实测发行包内
LICENSE文件头为 "The MIT License (MIT), Copyright 2021-2026 mosparo Core Developers and contributors",仓库 README License 节同此(查询日期 2026-10-28)。MIT 是宽松许可,商用集成、二次分发均无障碍。 - 社区热度:GitHub 星数 313(取自 shields.io 徽章
img.shields.io/github/stars/mosparo/mosparo.svg的徽章文本,查询日期 2026-10-28;GitHub API 有限流,徽章数据同样取自 GitHub 官方数据)。 - 语言生态:官方使用 Weblate 组织多语言翻译,中文界面开箱可用(来源:仓库 README Contributing 节,2026-10-28)。
五、与验证码服务的差异定位
mosparo 与 reCAPTCHA / hCaptcha 这类验证码服务不是同一形态的东西,选型前先想清楚三个差异:
- 判定逻辑不同。验证码服务相信"能解题的就是人";mosparo 相信"内容与行为像垃圾的就是垃圾"。前者对用户体验友好但挡不住打码平台,后者不折腾用户,但防线强度取决于规则包质量——官方在 README 里明确不承诺拦截所有垃圾,规则充分时估计可拦截 80% 以上(来源:仓库 README "Our target" 节,2026-10-28)。
- 数据归属不同。验证码服务要把用户行为数据送到第三方;mosparo 全程自托管,只采集表单字段、IP 与 User-Agent,加密存储、定期清除,天然贴合 GDPR 场景(来源:仓库 README Key features 节,2026-10-28)。
- 无障碍性不同。mosparo 官方明确将"不使用拼图/扭曲图片"写入项目目标:对视障用户或使用辅助技术的用户,验证码是真实障碍,而 mosparo 的勾选框对所有人无差别(来源:仓库 README "Our target" 节,2026-10-28)。
六、量化选型对比
结合官方公开资料与本栏实测,按表单防护场景横向对比(非 mosparo 行取自各官方站公开描述,查询日期 2026-10-28;mosparo 行全部为本栏实测):
| 方案 | 形态 | 开源/许可 | 用户交互 | 数据归属 | 成本与维护 | 版本/热度 |
|---|---|---|---|---|---|---|
| mosparo 1.5.13 | 独立自托管 Web 服务 | 开源,MIT(实测 LICENSE 文件) | 仅勾选框,无拼图 | 全部留在本方服务器 | 需自备一台 PHP 主机 + 数据库,含管理后台/规则包市场/统计 | v1.5.13(2026-10-26),GitHub 313 星(2026-10-28) |
| Google reCAPTCHA | SaaS | 闭源 | 勾选框 + 图像挑战 | 提交与行为数据归 Google | 免费额度,零运维 | 商业服务 |
| hCaptcha | SaaS | 闭源 | 图像挑战为主 | 数据出站到 hCaptcha | 免费额度 + 商业档 | 商业服务 |
| Cloudflare Turnstile | SaaS | 前端 SDK 开放、服务端闭源 | 多数场景无感 | 数据出站到 Cloudflare | 免费,零运维 | 商业服务 |
| FriendlyCaptcha v0.x | 前端组件 + 可自建验证端 | 开源 | PoW 无感拼图 | 可自托管 | 需自行部署验证端;上游开源仓库当前已不可达(shields.io 返回 repo not found,2026-10-28),社区版演进停滞 | — |
| 纯蜜罐(自研字段) | 站点内嵌代码 | — | 完全无感 | 本站 | 零依赖,但只能拦最低级机器人 | — |
选型结论:
- 选 mosparo:数据不能出站(合规/内网/隐私敏感站点)、不想让用户解题、愿意维护一台小型 PHP 服务、需要管理后台看拦截统计——它是这个象限里少有的完整开源方案。
- 不选 mosparo:只想零运维挂个脚本(选 Turnstile/hCaptcha)、或者业务是高对抗性场景(票务、撞库防御)需要商业风控引擎(选 SaaS 风控)——mosparo 官方自己也承认它防不了所有垃圾。
- 数据库选择:单站点小流量可直接 SQLite(零外部依赖);本栏部署篇实测采用 MariaDB,便于备份与多实例扩展,依赖链见《mosparo 1.5.13 安装部署指南》。
七、本栏系列文档
- 部署:《mosparo 1.5.13 安装部署指南》——Debian 12 + Apache + MariaDB 从零装到安装向导走通。
- 配置:《mosparo 1.5.13 配置参数详解》——.env 环境变量、安装配置文件、项目级参数逐项讲透并验证生效。
- 运维:《mosparo 1.5.13 常用 CLI 命令详解》——
bin/console命令族、备份恢复、计划任务逐个实测。