Al implementar CORS, ¿debo buscar un encabezado HOST correcto en mi aplicación web?

2

Tengo un servidor web backend que sirve una API (a través de HTTPS) a un cliente de navegador frontend en un subdominio diferente. Utiliza CORS para permitir esto.

La especificación CORS le indica que no envíe los encabezados CORS si el origen no está presente o no coincide con su lista de orígenes permitidos, que yo hago.

Pero Sección 6.3 agrega que:

  

Además de verificar el encabezado de Origen, se recomienda encarecidamente a los autores de recursos que también verifiquen el encabezado de Host. Es decir, asegúrese de que el nombre de host proporcionado por ese encabezado coincida con el nombre de host del servidor en el que reside el recurso. Esto proporcionará protección contra los ataques de reenlace del DNS.

¿Esto es valioso para agregar a nuestro servidor de API? Según tengo entendido, la renovación de DNS es un ataque que realizarías para acceder a algo en un sistema local como un enrutador, por lo que no estoy seguro de si eso se aplica a nosotros.

Si debemos verificar el encabezado Host , ¿qué acción debemos tomar? ¿Simplemente no devuelve los encabezados de CORS o rechaza la solicitud por completo? La primera opción tiene más sentido para mí, ya que de lo contrario la recomendación no pertenecería a una especificación CORS, pero el documento no está claro.

    
pregunta MaxGabriel 12.07.2018 - 21:17
fuente

1 respuesta

2
  

Según tengo entendido, la renovación de DNS es un ataque que realizarías para acceder a algo en un sistema local como un enrutador ...

Un ataque de reencuadernación de DNS no está restringido a un enrutador u otros dispositivos de red local. Es un ataque que se utiliza para omitir la misma política de origen y, por lo tanto, no solo envía datos a un servidor como en CSRF, sino que también lee la respuesta.

Si bien el caso de uso típico es leer datos de servidores a los que no se puede acceder directamente desde afuera (como la wiki interna de la empresa), por ejemplo, también se puede usar para obtener datos de sistemas accesibles a través de Internet que utilizan autenticación basada en IP ( es decir, algún cliente tiene derechos especiales basados en la dirección IP de origen).

Dado que CORS se trata de restringir la lectura / escritura entre sitios, la recomendación de verificar el encabezado Host para proteger contra el DNS tiene sentido, ya que el enlace DNS es esencialmente el intento de hacer que una solicitud entre sitios se comporte como una solicitud del mismo sitio.

    
respondido por el Steffen Ullrich 12.07.2018 - 21:38
fuente

Lea otras preguntas en las etiquetas