Apache安全过滤核心是分层、精准、可验证的控制逻辑,包含四类做法:拦截危险HTTP方法、过滤敏感URL参数、构建原子化规则链(C标志)、限制恶意来源与频次。

Apache 实施安全请求过滤,核心不是堆砌规则,而是分层、精准、可验证的控制逻辑。重点不在“拦多少”,而在“为什么拦”和“是否真拦住了”。以下四类做法覆盖常见攻击面,每种都对应明确场景与实操要点。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
拦截危险 HTTP 方法
禁用 TRACE、DELETE、OPTIONS 等非业务必需方法,能直接消除部分探测与资源破坏风险。 - 在虚拟主机或目录配置中使用 `过滤敏感 URL 参数
查询字符串(如 `?cmd=ls&token=abc`)不会被 `RewriteRule` 默认匹配,必须显式检查 `%{QUERY_STRING}`。 - 拦截含高危参数名或值的请求: ```apache RewriteCond %{QUERY_STRING} (cmd|exec|phpinfo|passwd|env)= [NC] RewriteRule ^ - [F] ``` - 若只针对某路径(如 `/admin/`),让 `RewriteRule` 先匹配路径再加条件: ```apache RewriteCond %{QUERY_STRING} debug=true [NC] RewriteRule ^/admin/ - [F] ``` - `%{QUERY_STRING}` 是原始编码内容(空格为 `+`,中文为 `%E4%BD%A0`),正则须按编码形式写,不可假设已解码。构建原子化规则链(C 标志)
单条规则易被绕过,`[C]`(chained)标志可将多步校验绑定为“全有或全无”的执行单元。 - 示例:仅当请求路径为 `/api/v2/` **且** 含有效 Bearer Token 时才代理: ```apache RewriteCond %{REQUEST_URI} ^/api/v2/ [NC] RewriteRule ^ - [C] RewriteCond %{HTTP_AUTHORIZATION} ^Bearer\s+[a-zA-Z0-9_\-]+ [NC] RewriteRule ^ - [C] RewriteRule ^(.*)$ /api-proxy.php?$1 [L] ``` - 关键点:`[C]` 只作用于**紧接下一条规则**;三步链需两个 `[C]`;任一条件失败,后续规则全部跳过,无中间态残留。限制恶意来源与频次
单纯封 IP 效果有限,应结合黑白名单与基础限流。 - 用 `RemoteAddrValve`(Tomcat)或 Apache 的 `mod_rewrite` + 环境变量做 IP 过滤: ```apache RewriteCond %{REMOTE_ADDR} ^192\.168\.137\.(10|20) [OR] RewriteCond %{REMOTE_ADDR} ^203\.0\.113\.50 RewriteRule ^ - [F] ``` - 简单频次控制可用 `mod_ratelimit`(按带宽)或 `mod_evasive`(按请求数),但生产环境建议交由专用 WAF 或网关(如 APISIX、ModSecurity)处理,Apache 本身不原生支持动态计数器。不复杂但容易忽略。

















