apache的容器是控制网站目录访问权限的核心机制,2.4+版本必须显式声明,默认拒绝所有请求;需路径精准匹配documentroot、用require替代allow/deny、收紧options与allowoverride,并对敏感目录额外阻断脚本执行。

Apache 的 `
路径必须与 DocumentRoot 严格对应
每个虚拟主机的根目录必须用 `
- 若 `DocumentRoot /var/www/site-a`,则写 `
` - 不能简写为 `
` —— 这会影响其他站点,且不生效于当前虚拟主机 - 子目录可单独定义,如上传目录 `
`,Apache 按最长路径匹配生效
用 Require 替代旧版 Allow/Deny
Apache 2.4 起废弃 `Order/Allow/Deny`,统一使用 `Require` 指令,逻辑更清晰、安全性更高:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- `Require all granted`:开放访问(开发环境慎用)
- `Require ip 192.168.10.0/24`:仅允许可信内网段
- `Require local`:只允许本机(127.0.0.1 和 ::1)
- `Require not ip 203.0.113.99`:黑名单单个 IP
- 多条件可并列,满足任一即放行;如需全部满足,须配合 `Satisfy all`(需额外启用模块)
Options 与 AllowOverride 需按需收紧
这两个指令直接影响功能暴露面和扩展风险:
- `Options -Indexes +FollowSymLinks`:禁用目录列表,允许符号链接(避免泄露结构)
- `Options None`:最严模式,禁用所有扩展特性(推荐生产静态资源目录)
- `AllowOverride None`:禁止 `.htaccess` 覆盖,提升性能与安全(除非真需动态覆盖)
- `AllowOverride All`:仅在明确需要时启用,并确保 `.htaccess` 内容可信
敏感目录要额外加固
上传目录、后台路径等高风险区域不能只靠 `Require`,还需阻断脚本执行:
- 对 `/uploads` 目录,添加 `
Require all denied ` - 搭配 `Options -ExecCGI -Includes`,防止服务器端包含或 CGI 执行
- 系统文件权限也要同步设为 `www-data:www-data` 且非可执行(如 `chmod 644` 文件、`755` 目录)










