Mercurial > hg > nginx
diff src/http/ngx_http_request.c @ 7877:63c66b7cc07c
Added CONNECT method rejection.
No valid CONNECT requests are expected to appear within nginx, since it
is not a forward proxy. Further, request line parsing will reject
proper CONNECT requests anyway, since we don't allow authority-form of
request-target. On the other hand, RFC 7230 specifies separate message
length rules for CONNECT which we don't support, so make sure to always
reject CONNECTs to avoid potential abuse.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Mon, 28 Jun 2021 18:01:04 +0300 |
parents | b290610bf812 |
children | bea0f9e5c309 |
line wrap: on
line diff
--- a/src/http/ngx_http_request.c Mon Jun 28 18:01:00 2021 +0300 +++ b/src/http/ngx_http_request.c Mon Jun 28 18:01:04 2021 +0300 @@ -2006,6 +2006,13 @@ } } + if (r->method == NGX_HTTP_CONNECT) { + ngx_log_error(NGX_LOG_INFO, r->connection->log, 0, + "client sent CONNECT method"); + ngx_http_finalize_request(r, NGX_HTTP_NOT_ALLOWED); + return NGX_ERROR; + } + if (r->method == NGX_HTTP_TRACE) { ngx_log_error(NGX_LOG_INFO, r->connection->log, 0, "client sent TRACE method");