Selectively Disabling HTTP/1.0 and HTTP/1.1
4 months ago
- #HTTP/3
- #Nginx
- #Security
- 该网站在2026年1月启用了HTTP/3协议,但大部分流量仍在使用HTTP/1.X,其中多数为恶意流量。
- 采用了两种方法选择性禁用HTTP/1.X:仅允许已知可信客户端,或排除预设恶意客户端。
- Nginx配置变更包括使用map指令创建变量,用于流量放行决策。
- 方法一:仅允许已知可信客户端(如文本浏览器和主流爬虫)使用HTTP/1.X。
- 方法二:仅阻止预设恶意客户端(如空UA标识或可疑UA)使用HTTP/1.X。
- 对不允许的HTTP/1.X请求返回HTTP 426状态码,并通过日志审查调整放行规则。
- 测试显示成功拦截恶意请求,实施后不良流量显著下降。
- 作者最初倾向方法一,但最终倾向方法二以兼容更多合法爬虫。
- 需权衡安全性与可访问性,平衡不同用户和机器人的访问需求。
- HTTP/1.0已基本淘汰,HTTP/1.1仍在使用但缺乏现代安全特性。