Comprender las solicitudes de origen cruzado de una página web

2

Al leer los ataques XSS en la wiki veo que dice que un script inyectado podría enviar datos / cookies al sitio de los atacantes. ¿Cómo se logra esto? ¿No hay controles / restricciones en las solicitudes de origen cruzado como esta desde un navegador? Pensé que la especificación CORS se hizo específicamente para este propósito y el sitio original debe establecer los sitios "auxiliares" en el encabezado Access-Control-Allow-Origin. ¿Me estoy perdiendo algo o no es necesario? ¿Puedo hacer una publicación HTTP en cualquier servidor desde cualquier página?

EDITAR: Creo que respondí mi propia pregunta aquí. La secuencia de comandos inyectada puede recuperar el código del sitio de los atacantes y, por lo tanto, ejecutarlo dentro del código del sitio original. Eso hace que el sitio de los atacantes esté bien para publicar. ¿Es esto correcto? Cualquier otra información bienvenida.

    
pregunta user220201 11.09.2014 - 21:58
fuente

1 respuesta

1

Si usa CORS para cualquier otra cosa, entonces XMLHTTPRequest (que históricamente por defecto solo permite el mismo origen) tiene que ser compatible en el lado del cliente (navegador) y también debe usarse explícitamente en el lado del servidor.

De forma predeterminada, las solicitudes de origen cruzado se pueden realizar simplemente incluyendo una imagen, hoja de estilo, script, etc. de otro sitio y si tiene un XSS exitoso, puede usarlo para enviar, por ejemplo, la cookie de sesión dentro de dicha solicitud. Para hacer esto imposible, deberá verificar cada solicitud en el lado del servidor (p. Ej., Solicitar un Origen o Referente del mismo sitio y no permitir el Origen / Referente vacío) o limitar las solicitudes entre sitios en el lado del cliente (usando Content-Security- Política, no es compatible con todos los navegadores recientes).

    
respondido por el Steffen Ullrich 12.09.2014 - 07:52
fuente

Lea otras preguntas en las etiquetas