我应该为 PHP 使用 Suhosin 吗?

信息安全 Web应用程序 php 应用安全
2021-08-19 11:13:55

Suhosin可用于提高 PHP 应用程序的安全性。当您使用共享主机时,我真的可以看到它的使用,多个(可能是邪恶的)人在那里运行他们的 PHP 应用程序。

当您只有一个自己的网络应用程序时,使用 Suhosin 有什么优势吗?

4个回答

截至 2012 年,Arch Linux 和 Debian 似乎已经抛弃了 Suhosin。我会说,它不太必要,以下博客文章引用了不使用它的很好的理由(主要与上游兼容性和不可预测/不可靠的发布周期有关):

就我个人而言,我总是在我的所有服务器上运行 Suhosin。

我的主要原因是

  • 将 sha256() 功能添加到 PHP。
  • 在过滤通过 PHP 完成的上传方面做了一些非常好的事情。
  • 禁用一些讨厌的 PHP 函数,如 eval()。这很好,因为尽管您很可能不会使用它,但您永远无法判断开发人员会做什么。
  • 此外,这里列出的所有其他原因都是运行它的充分理由。

查看 Suhosin的基准测试结果,性能损失至少对我来说是微不足道的。

我建议使用 Suhosin。但是,如果您“信任”您的代码,那么您就不能信任 PHP。过去在解释器本身中发现了很多漏洞,相信它们不会有一天就这么简单地消失。Suhosin 保护您免受更多“低级”漏洞的影响,例如缓冲区溢出等。

Suhosin 还将河豚密码散列算法添加到本身不支持它的平台(我认为只有 BSD 本身具有它)。它远远优于 MD5,并且比基于 SHA 的更标准化。它也是可扩展的,您使用配置参数作为 salt 的一部分以对数方式缩放散列的复杂度,默认为 4 或 7,范围为 0-31。在 core2duo 2.4ghz 上,设置为 13 每个哈希大约需要 60 秒。