Tengo dos aplicaciones web WebApp1 y WebApp2 en dos dominios diferentes.
- Estoy configurando una cookie en WebApp1 en HttpResponse.
- ¿Cómo leer la misma cookie de HttpRequest en WebApp2?
Sé que suena extraño porque las cookies son específicas de un dominio determinado y no podemos acceder a ellas desde diferentes dominios; Sin embargo, he oído hablar de cookies CROSS-DOMAIN que se pueden compartir en varias aplicaciones web. ¿Cómo implementar este requisito usando cookies de CROSS-DOMAIN?
Nota: Estoy intentando esto con aplicaciones web J2EE
fuente
Como dicen otras personas, no puedes compartir cookies, pero puedes hacer algo como esto:
Por supuesto, no es completamente seguro, y tienes que crear algún tipo de protocolo interno entre tus aplicaciones para hacerlo.
Por último, sería muy molesto para el usuario si haces algo así en cada solicitud, pero no si es solo la primera.
Pero creo que no hay otra manera ...
fuente
cookiebaker
sería mejor ;-)Hasta donde yo sé, las cookies están limitadas por la política del "mismo origen". Sin embargo, con CORS puede recibir y usar las cookies del "Servidor B" para establecer una sesión persistente del "Servidor A" en el "Servidor B".
Aunque, esto requiere algunos encabezados en el "Servidor B":
Y usted tendrá que enviar la bandera " withCredentials " en todas las peticiones "A" del servidor (por ejemplo:
xhr.withCredentials = true;
)Usted puede leer sobre ello aquí:
http://www.html5rocks.com/en/tutorials/cors/
https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS
fuente
No existen las cookies de dominio cruzado. Puede compartir una cookie entre
foo.example.com
ybar.example.com
pero nunca entreexample.com
yexample2.com
y eso es por razones de seguridad.fuente
foo.example.com
ybar.example.com
?La solución más inteligente es seguir el camino de Facebook en esto. ¿Cómo sabe Facebook quién eres cuando visitas un dominio? En realidad es muy simple :
El botón Me gusta en realidad le permite a Facebook rastrear a todos los visitantes del sitio externo, sin importar si hacen clic o no. Facebook puede hacer eso porque usan un iframe para mostrar el botón. Un iframe es algo así como una ventana de navegador incrustada dentro de una página. La diferencia entre usar un iframe y una imagen simple para el botón es que el iframe contiene una página web completa, de Facebook . No está sucediendo mucho en esta página, excepto por el botón y la información sobre a cuántas personas les ha gustado la página actual.
Entonces, cuando ve un botón de me gusta en cnn.com, en realidad está visitando una página de Facebook al mismo tiempo. Eso le permite a Facebook leer una cookie en su computadora, que ha creado la última vez que inició sesión en Facebook.
Una regla de seguridad fundamental en cada navegador es que solo el sitio web que ha creado una cookie puede leerla más adelante. Y esa es la ventaja del iframe: le permite a Facebook leer su cookie de Facebook incluso cuando está visitando un sitio web diferente. Así es como te reconocen en cnn.com y muestran a tus amigos allí.
Fuente:
fuente
Haz lo que Google está haciendo. Cree un archivo PHP que establezca la cookie en los 3 dominios. Luego, en el dominio donde se establecerá el tema, cree un archivo HTML que cargue el archivo PHP que establece la cookie en los otros 2 dominios. Ejemplo:
Luego agregue una devolución de llamada de carga en la etiqueta del cuerpo. El documento solo se cargará cuando las imágenes se carguen por completo, es decir, cuando las cookies se configuran en los otros 2 dominios. Devolución de llamada de carga:
Configuramos las cookies en los otros dominios usando un archivo PHP como este:
Ahora las cookies están configuradas en los tres dominios.
fuente
No puede compartir cookies entre dominios. Sin embargo, puede permitir que todos los subdominios tengan acceso. Para permitir que todos los subdominios
example.com
tengan acceso, establezca el dominio en.example.com
.Sin embargo , no es posible dar
otherexample.com
acceso aexample.com
las cookies de.fuente
.google.com
cookies aparecen cuando navegas a YouTube?Puede intentar empujar la cookie val a otro dominio utilizando una etiqueta de imagen.
Su millaje puede variar cuando intente hacer esto porque algunos navegadores requieren que tenga una Política P3P adecuada en el dominio de WebApp2 o el navegador rechazará la cookie.
Si observa la política p3p de plus.google.com, verá que su política es:
CP = "¡Esta no es una política P3P! Consulte http://www.google.com/support/accounts/bin/answer.py?hl=es&answer=151657 para obtener más información".
esa es la política que usan para sus botones de +1 a estas solicitudes de dominio cruzado.
Otra advertencia es que si está en https, asegúrese de que la etiqueta de la imagen apunte a una dirección https; de lo contrario, las cookies no se establecerán.
fuente
Hay una descripción general decente de cómo Facebook lo hace aquí en nfriedly.com
También hay huellas digitales del navegador, que no es lo mismo que una cookie, pero tiene el mismo propósito, ya que le ayuda a identificar a un usuario con un cierto grado de certeza. Hay una publicación aquí en Stack Overflow que hace referencia a un método de huellas digitales
fuente
Uno puede usar iframes invisibles para obtener las cookies. Digamos que hay dos dominios, a.com y b.com. Para el index.html del dominio a.com se puede agregar (observe la altura = 0 ancho = 0):
De esa forma, su sitio web recibirá cookies de b.com, suponiendo que http://b.com las configure.
Lo siguiente sería manipular el sitio dentro del iframe a través de JavaScript. Las operaciones dentro del iframe pueden convertirse en un desafío si uno no posee el segundo dominio. Pero en caso de tener acceso a ambos dominios, la página web correcta en el src de iframe debería proporcionar las cookies que le gustaría obtener.
fuente
Web.config
Incluya el origen de la IU y establezca Permitir Crentiales en verdadero
fuente
Creé un módulo NPM, que le permite compartir datos almacenados localmente entre dominios: https://www.npmjs.com/package/cookie-toss
Al usar un iframe alojado en el Dominio A, puede almacenar todos sus datos de usuario en el Dominio A y hacer referencia a esos datos publicando solicitudes en el iframe del Dominio A.
Por lo tanto, los dominios B, C, etc. pueden inyectar el iframe y publicar solicitudes para almacenar y acceder a los datos deseados. El dominio A se convierte en el centro de todos los datos compartidos.
Con una lista blanca de dominios dentro del Dominio A, puede asegurarse de que solo sus sitios dependientes puedan acceder a los datos en el Dominio A.
El truco es tener el código dentro del iframe en el Dominio A que puede reconocer qué datos se solicitan. El archivo README en el módulo NPM anterior profundiza en el procedimiento.
¡Espero que esto ayude!
fuente
Leer
Cookie
enWeb Api
fuente