有人告诉我 phpinfo 包含敏感数据,因此在生产环境中应将其删除。但今天下午我仔细查看了一下,发现没什么有趣的东西。所以我的问题是。什么是敏感信息?攻击者将如何使用这些信息?或者他/她会从配置页面中了解到什么?
答案1
一个例子。
如果您的phpinfo
页面显示您正在使用 Windows Server 2008 和 PHP 5.6,以及某些 PHP 模块,那么攻击者可以轻松控制您的服务器,因为,
- Windows Server 2008 已终止使用,微软将不再修复安全问题。
- PHP 5.6 已终止使用,安全问题不再得到修复。
- 某些模块本身存在漏洞,为攻击者打开了大门。
即使您使用最新的 Windows 和 PHP 版本,也仍然存在零日漏洞。
你向外界透露的信息越少,攻击者就越难利用这些信息。
你最好聘请一位安全顾问并了解更多知识。
答案2
一般来说,安全问题是,您的基础设施和应用程序“泄露”的信息越多(通过披露产品名称、版本和功能),对手收集信息所需的工作量就越少,他们就越容易快速瞄准特定的(已知)漏洞。
这使得在生产环境中的最佳实践包括抑制版本号、禁用调试代码/选项(如phpinfo()
)、抑制错误消息等等......
答案3
泄露的有关您服务器的每一点信息都可能造成问题。如果您未在 httpd.conf 中禁用它,即使是泄露的 Apache 横幅也可能导致妥协。请访问 exploit-db.com 并查看,例如,针对 Apache 的所有漏洞。请注意,大多数漏洞都会影响特定版本。因此,现在有了 phpinfo 公开该信息,脚本小子就可以轻松地自动攻击您的系统。即使修补了它,仍然会造成问题,至少是流量中断。而如果他们没有版本,那么他们通常不会运行任何东西。许多 Apache 模组过去都存在问题 - phpinfo 公开的另一件事。某些本地漏洞在某些内核上运行 - 再次是 phpinfo...
它还会显示您正在使用的数据库 - 因此攻击者可以立即知道要尝试使用哪些命令来进行 SQL 注入攻击。某些版本容易受到特定攻击。
您还可以从 phpinfo 中猜测诸如用户名、用户名格式、目录结构等信息……有些攻击您需要知道目录结构,例如 PUT 攻击,通常攻击者必须做出有根据的猜测,但 phpinfo 会将该信息放在那里。
甚至诸如服务器管理员之类的信息,您也可以通过 Google 搜索并可能在 StackExchange 上找到他们的安全问题......
基本上,phpinfo 对于任何潜在的攻击者来说都是一个巨大的菜单。把它遮住。同时,隐藏你的横幅版本,除非你出于某种原因需要这些信息。