保护第三方 PHP Web 应用程序配置文件的策略

保护第三方 PHP Web 应用程序配置文件的策略

我对保护 PHP 配置文件的评论和策略很感兴趣,特别是那些带有 Db 凭据的文件。

股票建议,将文件扩展名设置为 *.php,就目前而言是没问题的,但它不能防止目录阅读攻击。我正在考虑的特定场景:

  1. 我们有一个托管各种第三方应用程序的服务器。
  2. 我们无法彻底审查所有应用
  3. 如果攻击者入侵了某个应用程序,他们可能会使用该应用程序从其他目录读取文件。数据库配置文件是一个明显的目标。

我有一个解决方案,似乎有其优点,但我并不完全满意。我很想听听大家对此的评论,以及

  1. 查找 php_include 的设置
  2. 将配置文件放在该目录中
  3. 确保加载配置的 require/include 语句没有指定硬路径(没有前导 ./ 等)

目标

  • 对错误的姊妹网络应用程序(更重要的是,对网络服务器本身)完全隐藏配置文件。

  • 隐藏配置文件的实际位置。无法通过阅读代码轻松确定。这与指定 Web 树之外的路径相反。

  • 在服务器级别和应用程序级别,都只需最少的干预。

  • 避免对路径进行硬编码。

这并不能解决配置文件名冲突的问题,尽管对于一些应用程序来说,可能值得更改包含的配置文件名。

不幸的是,我们的许多网络应用程序似乎需要硬编码路径。

其他人提出了哪些方法?

答案1

标准建议适用:

  • 将配置文件放在 Web 根目录之上
  • 使用 .htacess 或类似文件拒绝访问这些文件夹
  • 使用文件权限保护文件夹

更好的建议:

  • 确保您的数据库服务器只能通过网络/防火墙 ACL 和其自己的基于主机的身份验证由您的 Web 服务器访问
  • 不要使用密码,使用证书/Kerberos/PKI(简短的谷歌有在 MySQL 中实现此建议
  • 如果你不信任某个应用程序,请在其自己的网络服务器上运行它,该服务器无法访问其他应用程序的文件
  • 使用绊线进行入侵检测

按照你的建议隐藏配置文件似乎是徒劳的,一旦攻击者以这种方式控制了你的系统,游戏就结束了。你只会让自己维护 web 应用程序的工作变得更加困难,而安全性却没有提高。

相关内容