Ver Mensaje Individual
  #5 (permalink)  
Antiguo 23/05/2014, 00:12
Pantaláimon
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 244
Antigüedad: 17 años, 9 meses
Puntos: 32
Respuesta: ajax y dominio cruzado

Gracias chuidiang.

He leído tu post varias veces y la segunda parte sobretodo me está costando de entender. Así que no he respondido hasta tener un rato para poder analizarlo con detalle.

Cita:
Iniciado por chuidiang
Es como tú piensas, pero en tu caso se admite porque el servidor al que consultas (openweathermap) devuelve en su cabecera http permisos para ser consultado desde cualquier dominio. La cabecera http de respuesta de openweathermap que puedes ver con las herramientas de debug de google chrome por ejemplo, contiene esto

Access-Control-Allow-Credentials:true
Access-Control-Allow-Methods:GET, POST
Access-Control-Allow-Origin:*

donde Access-Control-Allow-Origin:* indica que se pueden hacer peticiones desde cualquier dominio (localhost en tu caso).
Gracias. He probado de crear un web service SOAP en PHP con lo que has dicho. A parte del header:

Access-Control-Allow-Origin:*

He tenido que poner la siguiente linea:

Access-Control-Allow-Headers:Origin, X-Requested-With, Content-Type, Accept
Aún no he investigado por qué, pero sino no podía hacer una petición ajax al web service.

Cita:
Imagina que yo estoy en mi casa o en el trabajo con mi router y tengo cuatro o cinco PCs en mi red interna con un servidor web activo.
Imaginaré que en cualquier sitio tienes una red con 5 PCs y un servidor web activo.

Cita:
Desde un pc navego
¿Un pc de la red u otro externo a la red?

Cita:
y cargo una web de internet que tenga mala leche. El código javascript de esa página se ejecuta en mi PC y dentro de mi red
Ah, de acuerdo. Cargas una página web maliciosa desde un PC que está dentro de la red, he de entender.

Cita:
, por lo que podría pedir consultas web a otros PCs de mi red interna y enviar información a su servidor.
Vale, si me dices que la web maliciosa puede pedir consultas web a otros PCs de tu red, yo entiendo que es porque el mismo dominio apunta diferentes PCs de tu red.
¿Me lo imagino bien?


Cita:
Se agrava el tema si encima por temas de cookies tengo sesión abierta en esos PCs internos, por lo que javascript accedería incluso con mi usuario y mis permisos en las web internas de mis PCs.
No acabo de entender porque tienes sesión abierta en esos PCs? ¿Son PCs servidores o clientes? Yo pensaba que eran servidores por eso de tener un servidor web activo. La verdad es que me ha líado mucho la explicación por no separar cuales son máquinas servidoras de cuales son clientes. Por eso propongo otro escenario a ver si así me aclaro.

Simplifiquemos las cosas. Actores de la historia:
Servidor B: contiene una web bienitencionada(aunque posiblemente corruptible introduciendole algun script): webbuena.com
Servidor M: contiene una web maliciosa: webmala.com
Cliente: usa el navegador para cargar alguna de las páginas de los servidores B o M.

Vamos a suponer que no existe la política del mismo origen en los navegadores y a ver que ocurriría en diferentes casos que voy a exponer:

CASO 1:
La web maliciosa contiene algun script que obtiene y envia datos de webbuena.com

CASO 2:
A la web bienintencionada le introducen algun script que hace que pueda obtener o enviar datos de la web maliciosa.

Me cuesta entender como a través de una petición AJAX la respuesta a dicha petición puede traer consigo las cookies. Pues en teoría devuelve una cadena de texto en formato XML o JSON. Es muy importante para mi entenderlo para luego poder aplicar la seguridad conveniente a través de la directiva Access-Control-Allow-Origin.

Un saludo y gracias.
__________________
github.com/xgbuils | npm/xgbuils