HTTP/2 Misdirected Request 保护¶
Gixy 检查 ID:http2_misdirected_request
概述¶
http2_misdirected_request 插件检测一种潜在不安全的模式,即 TLS default_server 启用了 ssl_reject_handshake on; 并启用了 HTTP/2,但没有在 location / 中显式返回 421(Misdirected Request)。
这通常用作边缘情况的防御性保护措施,在这些情况下,请求仍可能在意外的服务器上下文中被处理。
检测内容¶
当以下所有条件都为真时触发:
- 存在
ssl_reject_handshake on; - 服务器被标记为
default_server(或default) - HTTP/2 已启用(
http2 on;或listen ... http2) - 没有
location /(或location = /)执行return 421;
示例¶
❌ 错误:缺少 421 保护¶
http {
server {
listen 443 ssl default_server;
http2 on;
ssl_reject_handshake on;
}
}
✅ 正确:显式返回 421¶
http {
server {
listen 443 ssl default_server;
http2 on;
ssl_reject_handshake on;
location / {
return 421;
}
}
}