You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache如何配置仅允许主流标准浏览器发起的HTTP请求访问

常规实现思路

别搞那些花里胡哨的浏览器指纹、多请求头联合校验,直接通过请求头里的User-Agent(简称UA)字段判断即可,完全满足无防破解要求、便捷可用的场景。主流浏览器的默认UA都有固定的专属标识,而命令行工具、非浏览器HTTP客户端的默认UA特征非常明显,很容易区分。

识别规则

可放行的主流浏览器UA核心特征

只要UA命中以下任意一个特征,就判定为来自主流标准浏览器:

  • Mozilla Firefox:UA包含Firefox/字段
  • Google Chrome:UA包含Chrome/字段
  • 新版MS Edge(Chromium内核):UA包含Edg/字段
  • Apple Safari:UA包含Safari/字段(Chrome、Edge等Chromium系浏览器为了兼容也会带这个字段,不影响判定,本身这类浏览器就在放行范围内)

直接拦截的非浏览器请求典型特征

命令行工具、通用HTTP客户端的默认UA基本不会携带上述浏览器专属标识,常见的默认UA标记包括:

  • 命令行类:curl/、Wget/、HTTPie/
  • 客户端工具类:PostmanRuntime/、python-requests/、Go-http-client/、Java/
服务端配置示例

Apache 配置

和参考逻辑框架完全匹配,直接在站点配置文件或者.htaccess中加入如下规则即可:

<If "%{HTTP_USER_AGENT} !~ /(Firefox\/|Chrome\/|Edg\/|Safari\/)/">
  Require all denied
</If>

Nginx 配置

在站点对应的server/location块中加入如下规则:

if ($http_user_agent !~* "(Firefox/|Chrome/|Edg/|Safari/)") {
    return 403;
}
注意事项
  • 该方案仅做常规流量拦截,不具备防UA伪造能力,符合需求中“无需防破解、便捷可用”的要求
  • 如果业务存在自研客户端、特殊工具主动伪造浏览器UA的场景,这个方案不会拦截,可按需追加额外校验规则
  • 不用额外引入Sec-Fetch头、Accept头校验之类的复杂逻辑,UA判断已经足够覆盖绝大多数常规非浏览器默认请求场景,维护成本最低

内容的提问来源于stack exchange,提问作者Lokomotywa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 13:45:31