php - 在 PHP/Apache/Linux 环境中,为什么 chmod 777 是危险的?

标签 php linux security apache chmod

this question 中讨论的启发.

我们都被告知,将目录或文件保留在具有 777 权限级别的基于 Linux 的 Web 主机上是一件坏事,并且始终设置尽可能少的权限。

我现在很好奇究竟在哪里存在被利用的危险,特别是在 PHP/Apache 上下文中。

毕竟,无论是否标记为“可执行”,PHP 脚本文件都可以从外部执行(即通过调用 Web 服务器,然后调用解释器),不是吗?这同样适用于通过命令行 php 解释器调用的文件,对吧?

那么 777 的漏洞究竟在哪里?是不是同一台机器上的其他用户可以访问全世界可写的文件?

最佳答案

这是一个场景:

  1. 您有一个用户可以上传到的不 protected 目录。
  2. 他们上传两个文件:一个 shell 脚本,一个 php 文件,其中包含对 shell 脚本的 system() 调用。
  3. 他们通过访问浏览器中的 url 来访问刚刚上传的 php 脚本,从而导致 shell 脚本执行。

如果这个目录是777,这意味着任何人(包括用户apache,这是php脚本将执行的)都可以执行它!如果没有在该目录上设置执行位,并且可能是目录中的文件,那么上面的步骤 3 将不会执行任何操作。

从评论中编辑:重要的不是 PHP 文件的权限,而是 PHP 文件中的 system() 调用将由 linux 用户 apache(或无论您将 apache 设置为如何运行),这正是执行位重要的地方。

关于php - 在 PHP/Apache/Linux 环境中,为什么 chmod 777 是危险的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2338641/

相关文章:

java - 主机的动态地址移到另一个主机后,Java REST Client仍连接到旧主机

php - PayPal - 在汇款前检查门票是否仍然可用

php - SSL 第一次没有显示安全

phpinfo() 显示已启用 cURL,但我仍然无法使用它

javascript - Firefox 在 .NET 中提前记住文本框值

php - 编辑 HTML 然后通过 PHP 发布

linux - Debian 6 Squeeze 的 GHOST 漏洞修复

php - 在 wordpress 中使用 wp_Query 的 JSON?

c++ - 如何从共享库中调用函数?

linux - 如何将 tail -f 输出重定向到 curl(HTTP 流)