一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Apache DocumentRoot 配合安全基线如何配

时间:2026-09-02 08:34:48 编辑:袖梨 来源:一聚教程网

DocumentRoot 安全基线要求其路径独立最小化、禁止存放敏感文件、显式配置Directory块限制选项与访问、封堵根目录及上级路径、严格管控文件权限与属主。

DocumentRoot 是 Apache 的核心路径起点,安全基线不是额外插件,而是对这个起点及其周边配置的系统性约束。配得对, 根目录就稳;配错一点,可能整个站点暴露在风险中。

DocumentRoot 位置必须独立且最小化

不要放在系统根目录(如 /)、用户主目录(如 /home/www)或 Apache 安装目录(如 /usr/local/apache2/htdocs)下。推荐路径:

  1. /var/www/example.com(Linux,权限归属 www-data:www-data
  2. C:/inetpub/wwwroot/example.com(Windows,ACL 明确仅授予 Apache 进程)

该目录只放运行所需文件:入口脚本(index.php)、静态资源(css/js/)、必要配置模板。禁止存放日志、上传目录、备份包、数据库凭证文件。

Directory 块必须显式授权 + 严格限制

DocumentRoot 对应的 <Directory> 不是可选——它是安全基线的第一道门。示例配置:

<Directory "/var/www/example.com">Options -Indexes -ExecCGI -IncludesAllowOverride NoneRequire all granted<FilesMatch ".(htaccess|env|log|bak|swp|sql|yml|yaml|json)$">Require all denied</FilesMatch></Directory>

关键点:

  1. Options -Indexes:关掉目录列表,避免暴露结构
  2. AllowOverride None:禁用 .htaccess,防止运行时被覆盖规则
  3. Require all granted:仅允许访问,不开放写入或执行权限
  4. <FilesMatch>:精准拦截敏感后缀,比全局 deny 更可靠

配合基线禁止根目录和上级路径访问

Apache 默认配置中常含危险的根目录开放段,必须显式封堵:

<Directory "/">AllowOverride noneRequire all denied</Directory>

再检查是否存在类似 Alias / ..ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 未加锁的配置。所有非 DocumentRoot 下的映射(如 Alias、ScriptAlias)都需单独配 <Directory>,且 Require all denied 为默认策略,只对明确路径放开。

权限与属主必须符合最小原则

操作系统层权限同样属于基线范畴:

  1. DocumentRoot 目录权限设为 750(Linux),组为 www-data,仅 Apache 用户可读+执行
  2. 所有 PHP/HTML 文件权限为 640,配置文件(如 .env)设为 600
  3. 禁止 Apache 用户拥有 shell 登录权限(/sbin/nologin
  4. 上传目录(即使通过 Alias 挂载)绝不能放在 DocumentRoot 内,且其 <Directory> 中必须加 php_flag engine off 或禁用解析

不复杂但容易忽略

热门栏目