Implicaciones de seguridad de agregar todos los dominios a CORS (es decir, Access-Control-Allow-Origin: *) [duplicado]

3

Tengo curiosidad acerca de cuáles son todas las implicaciones de seguridad si configuro las siguientes dos respuestas HTTP CORS ;

Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: false

Los únicos problemas de seguridad que veo son los ataques DoS y CSRF.
Los ataques CSRF ya se pueden lograr con los elementos IMG y FORM. Los ataques DoS relacionados con CORS se pueden superar mediante el bloqueo de solicitudes en el encabezado del remitente.

Así que no estoy seguro de por qué dijo que solo a un conjunto dado de dominios se le debería dar "acceso CORS".


¿Cuáles son las implicaciones de seguridad de agregar todos los dominios "acceso CORS"?

    
pregunta brillout 27.11.2013 - 12:07
fuente

1 respuesta

2

Access-Control-Allow-Origin tiene un significado diferente al de simplemente evitar CSRF: impide que el script que realiza la solicitud pueda obtener el resultado de la solicitud.

Lo mismo se aplica a Access-Control-Allow-Credentials . Este encabezado permite que el script obtenga la respuesta de una solicitud con credenciales. Tenga en cuenta que no puede usar el comodín * para Access-Control-Allow-Origin al enviar Access-Control-Allow-Credentials: true . pero puedes usar el valor del encabezado de solicitud Origin .

La implicación es: ¿Qué podría hacer un script con el contenido de su sitio?

  • Si el usuario ha iniciado sesión, un script puede obtener todos los sitios que puede ver, analizarlo y enviar los datos (tal vez confidenciales) a su origen.
  • Si incluye algún tipo de token anti-CSRF en formularios / enlaces, podrían obtener el valor del token y hacer una solicitud con ese token válido.
  • Puede actuar en la página en nombre del usuario.

Para XSS depende de lo que quieras decir con XSS. Si quiere decir con XSS que otro script actúa sobre bealf de un usuario, entonces ya lo ha permitido.

Entonces, al agregar a un sitio remoto solo se revelan algunas informaciones al sitio de origen (como el tiempo para cargarlo), la fuga de información (especialmente para los usuarios que han iniciado sesión) puede ser mucho mayor.

Como nota adicional: use el encabezado Origin si está presente para bloquear las solicitudes.

    
respondido por el Johannes Kuhn 27.11.2013 - 14:07
fuente

Lea otras preguntas en las etiquetas