open example ejemplo security jsonp javascript-security

security - example - xmlhttprequest post json



Por qué la misma política de origen para XMLHttpRequest (1)

¿Por qué los navegadores aplican la misma política de origen a XMLHttpRequest? Es realmente inconveniente para los desarrolladores, pero parece que hace poco para detener a los hackers. Hay soluciones, aún pueden incluir javascript de fuentes externas (el poder detrás de JSONP).

Parece una "característica" obsoleta en una web que está estrechamente vinculada.


Debido a que 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, entonces visitó attacker.com, este último sitio podría crear un XMLHttpRequest a example.com con autorización completa para ese usuario y leer cualquier página privada que el usuario pudiera (luego reenviarlo al atacante).

Debido a que colocar tokens secretos en las páginas webapp es la forma de detener ataques simples de Cross-Site-Request-Forgery, esto significa que atacker.com podría tomar cualquier acción en la página que el usuario pudiera realizar en example.com sin ningún consentimiento o interacción de ellos. Global XMLHttpRequest es un script global entre sitios.

(Incluso si tiene 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 en su intranet y leer los archivos que puede descargar de ellos, que pueden no debe estar destinado al consumo público. Las etiquetas <script> ya sufren una forma limitada de este tipo de vulnerabilidad, pero las respuestas totalmente legibles de XMLHttpRequest arrojarían todo tipo de archivos en lugar de unos pocos creados por desgracia que pueden analizarse como JavaScript. )