Защита от HTTP/2 Misdirected Request¶
Идентификатор проверки Gixy: http2_misdirected_request
Обзор¶
Плагин http2_misdirected_request обнаруживает потенциально небезопасный паттерн, когда TLS default_server с ssl_reject_handshake on; имеет включённый HTTP/2, но не возвращает явно 421 (Misdirected Request) из location /.
Это обычно используется как защитная мера для граничных случаев, когда запросы всё ещё могут обрабатываться в неожиданном серверном контексте.
Что обнаруживается¶
Срабатывает, когда выполняются все следующие условия:
- присутствует
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;
}
}
}