我想知道我的架构是否存在安全风险。详情:
整个网站并非由 ROOT 拥有,但是所使用的 APACHE 用户仍然拥有一些相当高级的权限。
我有一个文件夹“user_files”,其中可能包含任何类型的用户文件。例如,ksh unix 文件。
我的 php.ini 禁用了 exec php 函数(以及一些其他敏感函数)
我的问题很简单,但包含两个方面:
- 有人可以执行上传的脚本吗?
- 风险有多大?如果脚本由 apache 执行,我猜它最多只能删除服务器上所有 apache 拥有的文件,对吗?
答案1
禁用 php 的 exec 函数可能有助于阻止 php 脚本调用其他脚本,例如您描述的 ksh 脚本。但是,除非您禁止用户上传 php 脚本,否则他们可能会从 php 调用有害函数(除非您也禁用所有这些函数)。
如果您可以禁用 apache 对 users_files 目录进行解释的所有动态脚本,您可能会更安全,但会禁用您希望用户使用的一些功能。
根据您的发行版以及您想要安装和维护的软件,我可以想到一个选项。
启用 Apache 的 suEXEC 功能,这样任何非 php 和其他 mod_language 脚本都可以在另一个用户帐户下运行。通过 cgi 接口使用 php(如果您可以获得 php-fpm),可以更轻松地以单独用户身份运行某些脚本。