El proxy no rechaza el encabezado de host ilegal cuando viene de la red de mi proveedor de VM

1

Tengo una aplicación de django alojada en una VM de linode, con proxy de nginx en esa misma VM.

En mi configuración nginx tengo un bloque para denegar solicitudes de encabezado de host incorrecto :

## Deny illegal Host headers
if ($host !~* ^(mydomain.com|www.mydomain.com)$ ) {
    return 444;
}

Esto bloquea casi todas las solicitudes incorrectas, pero todavía recibo solicitudes ocasionales de un host linode aleatorio (la aplicación me envía un correo electrónico debido a que este host no está en la lista blanca ALLOWED_HOSTS ). ¿Por qué esas solicitudes pueden pasar nginx?

    
pregunta Escher 15.04.2017 - 23:58
fuente

1 respuesta

3

$host se establecerá en $server_name si el cliente no proporciona un valor de encabezado de Host en la solicitud. Debe usar $http_host para acceder al encabezado de host puro.

Consulte este documento para obtener más información.

    
respondido por el Richard Smith 16.04.2017 - 11:42
fuente

Lea otras preguntas en las etiquetas