DocumentRoot权限配置须从路径选择、属主属组、目录块控制、文件级拦截四方面同步收紧:选隔离路径如/srv/www/example.com/public,属主webadmin/属组www-data且chmod 750,禁用Indexes/FollowSymLinks并Require all denied,再用封禁.env等敏感后缀。

DocumentRoot 权限配置必须从路径选择、属主属组、目录块控制、文件级拦截四方面同步收紧,单改一个环节无法真正落实最小权限原则。
路径选择要隔离且精简
DocumentRoot 不能指向系统根目录(/)、用户主目录(/home)或 Apache 安装目录(如 /usr/local/apache2/htdocs)。推荐使用专用路径,例如:
- /srv/www/example.com/public(Linux,语义清晰,与系统服务分离)
- C:/inetpub/wwwroot/example.com(Windows,配合 ACL 精确授权)
该目录只存放运行必需内容:入口文件(index.php)、CSS/JS/IMG 等静态资源。严禁放入 .env、config.php、.git、backup.sql、log 文件或上传目录。
通过全交互式问答对话,逐章节完成长文档的创建、编写和审计。适用于白皮书、方案书、用户手册、分析报告等需要深度共创的文档。 当用户提到"交互式写文档"、"一起写白皮书"、"逐章讨论"、"Step by Step写文档"、"帮我写方案书/报告/手册", 或者用户想通过问答方式完成任何长文档编写时,使用此技能。即使用户...
属主属组与文件系统权限要严格匹配
Apache 进程必须以非 root 用户运行(如 Debian/Ubuntu 用 www-data,RHEL/CentOS 用 apache),DocumentRoot 目录需按此用户配置:
- 属主设为网站维护者(如 webadmin),属组设为 Apache 运行组(如 www-data)
- 目录权限统一设为 750(所有者读写执行,组仅读执行,其他无权限)
- 静态文件(.html/.css/.js)设为 640,可执行脚本(如 index.php)若需写入日志,再按需开放组写权限
- 执行:
chown -R webadmin:www-data /srv/www/example.com/public && chmod -R 750 /srv/www/example.com/public
Directory 块必须显式禁用高危行为
仅设置 DocumentRoot 不够,必须在虚拟主机或主配置中配对定义其 <directory></directory> 区块,禁止默认宽松策略:
- Options -Indexes -ExecCGI -Includes -FollowSymLinks:关闭目录列表、CGI 执行、服务端包含、符号链接跟踪
- AllowOverride None:禁用 .htaccess,防止分散式配置绕过主策略
-
Require all denied 作为默认策略,再按需用
Require ip或Require local显式放行 - 额外加一层文件后缀拦截:
<filesmatch> Require all denied </filesmatch>
封堵根路径与跨目录访问
很多漏洞源于未约束的上级路径访问,必须主动防御:
- 在全局配置中显式锁定根目录:
<directory></directory> AllowOverride None Require all denied - 检查所有
Alias或ScriptAlias指令,确保它们指向的物理路径也配有独立<directory></directory>块,并默认Require all denied - 禁用
mod_userdir(如启用了 ~username 访问)或将其限制在严格白名单内

















