受此问题中的讨论启发。
我们都知道在Linux基础的Web主机上将目录或文件权限设置为777
是一件危险的事情,应该尽可能地减少权限。
我现在很好奇在PHP / Apache环境中,究竟存在哪些利用漏洞的风险?
毕竟,无论是否标记为“可执行”,PHP脚本文件都可以从外部(即通过调用Web服务器,随后调用解释器)执行,对吧?同样适用于通过命令行php
解释器调用的文件,对吧?
那么,777
的漏洞在哪里呢?难道其他用户能够访问被设为全局可写的文件吗?
受此问题中的讨论启发。
我们都知道在Linux基础的Web主机上将目录或文件权限设置为777
是一件危险的事情,应该尽可能地减少权限。
我现在很好奇在PHP / Apache环境中,究竟存在哪些利用漏洞的风险?
毕竟,无论是否标记为“可执行”,PHP脚本文件都可以从外部(即通过调用Web服务器,随后调用解释器)执行,对吧?同样适用于通过命令行php
解释器调用的文件,对吧?
那么,777
的漏洞在哪里呢?难道其他用户能够访问被设为全局可写的文件吗?
以下是一种可能的情况:
system()
调用的 php 文件。如果这个目录是 777,那么任何人(包括用户 apache,也就是 php 脚本将作为其执行)都可以执行它!如果该目录以及目录内的文件没有设置执行位,则步骤 3 将什么也不会发生。
根据评论进行编辑:重要的不是 PHP 文件的权限,而是 PHP 文件中的 system()
调用将作为 Linux 系统调用由 Linux 用户 apache(或您设置 Apache 运行的用户)执行,这正是执行位起作用的地方。
chmod 777
就是这些吗? - Pekka