
新发布Sep 1, 2026
snuffleupagus v0.14.0
适用于 PHP7 和 PHP8 的安全模块 - 消灭漏洞类别并虚拟补丁其余部分!
Snuffleupagus
面向 php7 和 php8 的安全模块——消灭漏洞类别,并对其余部分进行虚拟补丁!
核心特性 • 下载 • 示例 • 文档 • 许可证 • 致谢
Snuffleupagus 是一个面向 PHP 7+ 和 8+ 的模块,旨在通过消灭整个漏洞类别来大幅提高针对网站的攻击成本。它还提供了一个强大的虚拟补丁系统,使管理员无需修改 PHP 代码即可修复特定漏洞并审计可疑行为。
核心特性
- 无明显的性能影响
- 强大且易于编写的虚拟补丁规则
- 消灭多类漏洞
- 基于 Unserialize 的代码执行
- 基于
mail的代码执行 - 窃取 Cookie 的 XSS
- 基于文件上传的代码执行
- 弱 PRNG
- XXE
- 基于过滤器的远程代码执行及相关攻击手段
- 多项加固特性
- 相对规范的代码库:
- 接近 100% 覆盖率的全面测试套件
- 每次提交均在多个发行版上进行测试
- 由
clang-format强制执行的代码风格 - 全面的文档
- 使用 coverity、codeql、scan-build 等工具
下载
我们有一个下载页面,您可以在其中找到适用于您发行版的软件包,当然您也可以直接 git clone 本仓库,或查看 github 上的发布版本。
示例
我们提供了各种示例规则,如下所示:
# 加固 `chmod` 函数
sp.disable_function.function("chmod").param("mode").value_r("^[0-9]{2}[67]$").drop();
# 缓解 `system` 中的命令注入
sp.disable_function.function("system").param("command").value_r("[$|;&`\\n]").drop();
当规则被违反时,您应该在日志中看到类似以下的行:
[snuffleupagus][0.0.0.0][disabled_function][drop] The execution has been aborted in /var/www/index.php:2, because the return value (0) of the function 'strpos' matched a rule.
文档
我们有一个综合网站,其中包含您可能需要的所有文档。当然,您也可以自行构建。
致谢
衷心感谢:
- Suhosin 项目 作为 巨大 的灵感来源
- NBS System 最初赞助了开发工作
- Suhosin-ng 的实验和贡献,以及赞助该项目的 NLNet
- 所有贡献者