为什么删除777权限非常重要?

我正在为我的PHP Web应用程序编写安装程序。 它要求用户将几个文件和目录(config.php,cache,uploads,.htaccess)的权限更改为777(以便它是可写的)。 我在许多应用程序中看到,安装程序要求用户将权限(config.php等)恢复为644。

为什么如此重要? 为什么我不能把它留在777? 我想这是一种安全问题,但是如果我把这些文件写入可写,会发生什么?

PHP脚本在networking服务器上运行。 以这种方式留下权限将使您的Web服务器用户( www-dataapache )能够写入这些文件。 如果您的脚本存在一些错误或漏洞,那么这些权限将允许Web服务器(以及外部代理)更改文件和文件系统的内容。 可能发生的事情:

  • 一切丢失(写权限也是删除文件的权限);
  • 添加不需要的东西:一些攻击旨在将数据添加到您的网站,例如恶意脚本,伪造页面或脚本进行垃圾和垃圾邮件。 由于您的Web服务器可以将文件写入文件系统,因此可以将数据上载到具有权限的任何位置。

所以,是的,在这个状态下留下权限是一个可怕的主意。

777尤其糟糕。 这意味着任何人都可以删除文件以及创build它们。 我创build一个文件,你删除该文件。

如果你必须使用777,那么使用1777 – 这告诉操作系统只允许文件的所有者删除它。

否则,正如coredump所说 – 一个脚本中的错误,允许我写出新的文件或覆盖现有的文件允许我做任何我想要你的web服务器,因为我覆盖/创build文件为apache / nobody / www-数据,那么Web服务器将服务于我的恶意内容而不是原始内容。

理想情况下,Web服务器进程无法写入它读取的目录以避免出现此类问题。

任何有权访问该目录(例如通过ftp)的人都可以读取,写入和执行它们。 作为开发者,你必须经历使用意图的场景,并closures潜在的安全漏洞。

该服务器/工作站中的其他用户可以修改该文件。 例如,使用桌面Ubuntu,使/ home 777可以被任何用户删除或修改。

当您在共享主机时,777尤其是安全风险。