我正在为我的PHP Web应用程序编写安装程序。 它要求用户将几个文件和目录(config.php,cache,uploads,.htaccess)的权限更改为777(以便它是可写的)。 我在许多应用程序中看到,安装程序要求用户将权限(config.php等)恢复为644。
为什么如此重要? 为什么我不能把它留在777? 我想这是一种安全问题,但是如果我把这些文件写入可写,会发生什么?
PHP脚本在networking服务器上运行。 以这种方式留下权限将使您的Web服务器用户( www-data或apache )能够写入这些文件。 如果您的脚本存在一些错误或漏洞,那么这些权限将允许Web服务器(以及外部代理)更改文件和文件系统的内容。 可能发生的事情:
所以,是的,在这个状态下留下权限是一个可怕的主意。
777尤其糟糕。 这意味着任何人都可以删除文件以及创build它们。 我创build一个文件,你删除该文件。
如果你必须使用777,那么使用1777 – 这告诉操作系统只允许文件的所有者删除它。
否则,正如coredump所说 – 一个脚本中的错误,允许我写出新的文件或覆盖现有的文件允许我做任何我想要你的web服务器,因为我覆盖/创build文件为apache / nobody / www-数据,那么Web服务器将服务于我的恶意内容而不是原始内容。
理想情况下,Web服务器进程无法写入它读取的目录以避免出现此类问题。
任何有权访问该目录(例如通过ftp)的人都可以读取,写入和执行它们。 作为开发者,你必须经历使用意图的场景,并closures潜在的安全漏洞。
该服务器/工作站中的其他用户可以修改该文件。 例如,使用桌面Ubuntu,使/ home 777可以被任何用户删除或修改。
当您在共享主机时,777尤其是安全风险。