不安全。777权限使所有用户均可读写执行,web进程可被利用写入并执行恶意脚本;仅uploads/、cache/、logs/等特定目录需有限写权限,且须禁用php解析,遵循最小权限原则。
777 权限在 PHP 中是否安全?
不安全。777 表示文件或目录对所有者、组用户、其他用户都开放读、写、执行权限,PHP 脚本一旦运行在 Web 服务器(如 Apache 或 Nginx)下,攻击者可能利用上传漏洞、路径遍历或代码注入,直接写入恶意脚本(如 shell.php),再通过 HTTP 请求执行它。只要 Web 进程(如 www-data)能写入并执行该文件,777 就等于敞开大门。
PHP 项目中哪些目录才需要写权限?
绝大多数 PHP 文件(.php、.inc、配置文件)应设为只读(如 644),仅以下几类目录需有限写入权限:
-
uploads/:用户上传的图片、附件等 —— 建议设为 755(目录)+ 644(文件),禁用 PHP 解析(通过 Web 服务器配置) -
cache/、logs/、runtime/:框架或自定义缓存/日志目录 —— 设为 755,属主为 Web 进程用户(如www-data),组可读不可写 -
vendor/(Composer)和composer.json:部署后不应被 PHP 写入,保持 644 / 755 即可
关键原则:最小权限 + 分离可执行与可写区域。绝不让 PHP 可写目录同时允许 PHP 脚本执行。
chmod 755 和 775 的实际区别在哪?
差异核心在于“组用户”是否有写权限:
立即学习“PHP免费学习笔记(深入)”;