Pregunta

¿Por qué los navegadores aplican la misma política de origen a XMLHttpRequest?Es realmente inconveniente para los desarrolladores, pero parece que no ayuda mucho a detener a los piratas informáticos.Existen soluciones alternativas, aún pueden incluir javascript de fuentes externas (el poder detrás de JSONP).

Parece una "característica" obsoleta en una red que está en gran medida interconectada.

¿Fue útil?

Solución

Porque una XMLHttpRequest pasa los tokens de autenticación del usuario.Si el usuario inició sesión en example.com con autenticación básica o algunas cookies y luego visitó attacker.com, este último sitio podría crear una solicitud XMLHttpRequest para example.com con autorización completa para ese usuario y leer cualquier página privada que el usuario pueda (luego reenviarlo al atacante).

Debido a que colocar tokens secretos en las páginas de aplicaciones web es la forma de detener ataques simples de falsificación de solicitudes entre sitios, esto significa que attacker.com podría realizar cualquier acción en la página que el usuario pueda realizar en example.com sin ningún consentimiento o interacción por su parte.Global XMLHttpRequest es un script global entre sitios.

(Incluso si tuviera una versión de XMLHttpRequest que no pasó la autenticación, todavía hay problemas.Por ejemplo, un atacante podría realizar solicitudes a otras máquinas no públicas de su intranet y leer cualquier archivo que pueda descargar de ellas y que no esté destinado al consumo público. <script> Las etiquetas ya sufren de una forma limitada de este tipo de vulnerabilidad, pero las respuestas completamente legibles de XMLHttpRequest filtrarían todo tipo de archivos en lugar de algunos que desafortunadamente se pueden analizar como JavaScript).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top