Web 可执行文件保存/读取敏感信息的适当权限和所有者

Web 可执行文件保存/读取敏感信息的适当权限和所有者

我有一个用 php 编写的应用程序,它可以将敏感信息保存并读取到文件中/sensitive/sensitive.txt。保存和读取敏感信息的文件是user.php。整个应用程序位于单独的文件夹中。

理想情况下只有 root 用户才能读取敏感文件。我想确保即使 ftp 中存在由 apache 或 ftp 用户过去创建的某些恶意软件文件,它也无法通过 file_get_contents 函数读取敏感文件。

问题在于,该文件是在 http 请求中使用 user.php 创建和读取的,因此文件所有者变成了用户 apache。即使我可以将此文件的所有者更改为 root,下一个问题是,当触发 http 请求时,user.php 将无法读取该文件,因为这将是 apache 用户执行 user.php 文件,因此 apache 用户读取敏感文件。

这个问题有解决办法吗?我怎样才能让 user.php 在 http 请求时读取/写入敏感文件,但不允许任何其他文件读取它?

答案1

可以进行设置,只允许某些 Web 服务器实例读取文件。但是,设置相当复杂:

它需要设置 nginx 网络服务器并使用具有不同 Unix 用户的不同应用程序池的 PHP-FPM 来控制对资源的访问。

简单的方法是使用单独的 MySQL 数据库来存储数据,并使用 MySQL 访问控制将数据的访问权限限制为所需用户。也就是说,创建一个只能访问数据库的新 MySQL 用户,并在 PHP 脚本中使用该 MySQL 用户。

相关内容