apache资源访问限制需明确授权逻辑、裁剪执行能力、精准拦截路径;用require显式授权,options禁用危险功能,filesmatch拦截敏感文件,require expr实现时间控制。

Apache 设置严谨的资源访问限制,核心在于三件事:明确授权逻辑、裁剪执行能力、精准拦截路径。不是加几行 Deny from all 就算完成,而是要让每条规则都落在认证、授权、内容解析三个关键环节上,且彼此不冲突。
用 Require 显式定义谁能访问
Apache 2.4+ 已弃用 Order/Allow/Deny,所有权限必须靠 Require 显式声明。默认不写任何 Require 会继承父级策略,极易漏放。
-
Require all denied→ 无条件拒绝,适合配置目录、日志目录、备份目录 -
Require ip 192.168.5.0/24→ 只允许可信内网段,运维后台常用 -
Require valid-user→ 强制 Basic 认证,需搭配AuthType Basic和AuthUserFile - 多条件“且”关系必须包裹在
<requireall>...</requireall>中,例如:
Require ip 203.0.113.0/24
Require valid-user
用 Options 禁用危险功能
Options 控制的是 Apache 对目录内容的处理能力,不是“开不开网页”,而是“能不能执行、能不能遍历、能不能显示列表”。放任默认值等于开放攻击面。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
-
Options -Indexes→ 关闭目录索引,防止/uploads/暴露全部文件 -
Options -ExecCGI -Includes -FollowSymLinks→ 禁用 CGI 执行、SSI 解析、符号链接跟随,上传目录必须加 -
Options None→ 最严策略,只允许静态文件读取,适合纯资源目录(如/cdn/) - 切忌单独写
Options +Indexes,它会覆盖上级的-Indexes,导致意外开启列表
用 FilesMatch 精准拦截敏感文件
攻击者常直连 .htaccess、.git/config、backup.zip 等文件。仅靠目录权限不够,必须按扩展名拦截。
- 在主配置或虚拟主机中添加:
Require all denied
- 对已知高危目录单独设限,例如:
Require all denied
Options None
用 Require expr 实现时间维度控制
若需“仅工作日 9:00–17:30 开放报表下载”,不能用 mod_rewrite——它只是重写,无法可靠拦截。必须用 Require expr 在授权阶段判断。
- 确保启用模块:
mod_authz_core和mod_authz_host - 时间变量基于服务器本地时区(非 UTC,非浏览器),周一为
time_wday == 1 - 正确写法示例(限制
/reports/weekly.pdf):
Require all denied
Require expr "time_wday >= 1 && time_wday = 9 && time_hour 30)"
- 测试前先确认系统时区:
timedatectl status,必要时设置为Asia/Shanghai










