Configuración de Access-Control-Allow-Origin: * cuando los identificadores de sesión se insertan en los encabezados HTTP

0

¿Se considera seguro que una aplicación establezca un encabezado access-control-allow-origin: * si durante el uso normal de la aplicación, las credenciales del cliente se insertan en los encabezados mediante el código JS? Por ejemplo:

GET /application/secretStuff

X-Authorization-Key: aaa
X-Authorization-Secret: bbbb

Esto significa que si un código malintencionado externo intenta realizar una llamada a esta URL, podrá ver la respuesta, pero esto será un error de autorización de todos modos.

Entiendo que hay al menos un inconveniente importante con esto, a saber, el aumento de la superficie de ataque. Pero estoy tratando de entender si este enfoque tiene otros problemas importantes.

    
pregunta christophetd 11.04.2017 - 10:20
fuente

2 respuestas

1
Las

solicitudes de origen cruzado solo son peligrosas cuando su navegador mostrará algo diferente que el atacante . Este es el caso si solo se puede acceder al sitio web desde su ubicación y no desde el atacante, o cuando ha iniciado sesión en algún sitio web. Si ha iniciado sesión, las solicitudes falsificadas llevan sus cookies para ese sitio web, donde las solicitudes normales del atacante no lo hacen. Si el sitio que utiliza no tiene cookies o cualquier otra forma de autenticación implícita , los atacantes no pueden obtener nada de las solicitudes de origen cruzado.

Por lo tanto, no es realmente la presencia de encabezados, sino la ausencia de cookies lo que haría a esta aplicación segura contra solicitudes de origen cruzado.

    
respondido por el Sjoerd 15.05.2017 - 15:44
fuente
1
  

Esto significa que si un código malintencionado externo intenta realizar una llamada a esta URL, podrá ver la respuesta, pero esto será un error de autorización de todos modos.

Sí, eso es correcto. Para poder sacar algo de valor, el atacante necesita obtener las credenciales. Si se almacenan en el almacenamiento local, en variables JS o lo que sea, estarán protegidos por la misma política de origen que impone el navegador.

Por lo tanto, no hay ningún problema importante con su política CORS en sí misma. Pero hay muchos problemas relacionados en los que debe pensar: ¿Es bueno el esquema de autenticación? Supongo que los terceros deben usar la API ya que usted quiere habilitar las solicitudes de origen cruzado, entonces, ¿cómo obtienen los secretos los terceros? Y así sucesivamente.

    
respondido por el Anders 14.05.2017 - 18:25
fuente

Lea otras preguntas en las etiquetas