A bug when Host header contain IPv6 address
speedfirst
nginx-forum at nginx.us
Wed Aug 31 07:37:28 UTC 2011
For a request with an IPv6 Host header like:
Host: Host: [2001:250:1800:1::88]
The function "ngx_http_validate_host" will consider the trailing ":88]"
as a port number and trim it. Therefore the value of
"r->headers_in.server" and "$host" will become:
[2001:250:1800:1:
Test (in Nginx - 1.1.1):
Test config:
listen [::]:80
location / {
add_header MYHEADER $host;
return 200;
}
Test input:
telnet 2001:250:1800:1::88
Trying 2001:250:1800:1::88...
Connected to 2001:250:1800:1::88.
Escape character is '^]'.
GET / HTTP/1.0
Host: [2001:250:1800:1::88]
Test output:
HTTP/1.1 200 OK
Server: nginx/1.0.3
Date: Wed, 24 Aug 2011 12:11:07 GMT
Content-Type: application/octet-stream
Content-Length: 0
Connection: close
MYHEADER: [2001:250:1800:1:
Posted at Nginx Forum: http://forum.nginx.org/read.php?2,214541,214541#msg-214541
More information about the nginx
mailing list