受 this question 中讨论的启发.
我们都被告知,将目录或文件保留在具有 777
权限级别的基于 Linux 的 Web 主机上是一件坏事,并且始终设置尽可能少的权限。
我现在很好奇究竟在哪里存在被利用的危险,特别是在 PHP/Apache 上下文中。
毕竟,无论是否标记为“可执行”,PHP 脚本文件都可以从外部执行(即通过调用 Web 服务器,然后调用解释器),不是吗?这同样适用于通过命令行 php
解释器调用的文件,对吧?
那么 777
的漏洞究竟在哪里?是不是同一台机器上的其他用户可以访问全世界可写的文件?
最佳答案
这是一个场景:
system()
调用。如果这个目录是777,这意味着任何人(包括用户apache,这是php脚本将执行的)都可以执行它!如果没有在该目录上设置执行位,并且可能是目录中的文件,那么上面的步骤 3 将不会执行任何操作。
从评论中编辑:重要的不是 PHP 文件的权限,而是 PHP 文件中的 system()
调用将由 linux 用户 apache(或无论您将 apache 设置为如何运行),这正是执行位重要的地方。
https://stackoverflow.com/questions/2338641/