javascript - read - Cómo configurar una cookie para otro dominio
leer cookie javascript (8)
Digamos que tengo un sitio web llamado a.com
, y cuando se carga una página específica de este sitio, por ejemplo, enlace de página, me gusta establecer una cookie para otro sitio llamado b.com
, luego redireccionar al usuario a b.com
.
Quiero decir, al cargar a.com/link
, quiero establecer una cookie para b.com
y redirigir al usuario a b.com
.
Lo probé, y el navegador realmente recibió la cookie de a.com/link
, pero no envió esa cookie en la solicitud de redirección a b.com
. ¿Es normal?
¿Podemos configurar cookies para otros dominios?
En caso de que tenga a.my-company.com
y b.my-company.com
lugar de simplemente a.com
y b.com
, puede emitir una cookie para el dominio .my-company.com
, será aceptado y enviado a ambos dominios
Establecer cookies para otro dominio no es posible.
Si desea pasar datos a otro dominio, puede codificar esto en la url.
a.com -> b.com/redirect?info=some+info (and set cookie) -> b.com/other+page
No puedes configurar cookies para otro dominio. Permitir esto presentaría un enorme defecto de seguridad.
Debes obtener b.com para configurar la cookie. Si a.com redirige al usuario a b.com/setcookie.php?c=value
La secuencia de comandos setcookie podría contener lo siguiente para configurar la cookie y redirigir a la página correcta en b.com
<?php
setcookie(''a'', $_GET[''c'']);
header("Location: b.com/landingpage.php");
?>
No puedes, pero ... Si tienes ambas páginas, entonces ...
1) Puede enviar los datos a través de parámetros de consulta ( http://siteB.com/?key=value )
2) Puede crear un iframe del Sitio B dentro del sitio A y puede enviar mensajes de un lugar a otro. Como el Sitio B es el propietario de las cookies del sitio B, podrá establecer el valor que necesite procesando el mensaje correcto de la publicación. (¡Debe evitar que otros remitentes no deseados le envíen mensajes!) Depende de usted y del mecanismo que decida utilizar para evitar que eso suceda)
No puedes. Eso sería un riesgo de seguridad desagradable.
Similar a la respuesta principal, pero en lugar de redirigir a la página y viceversa, lo que provocará una mala experiencia del usuario, puede establecer una imagen en el dominio A.
<img src="http://www.example.com/cookie.php?val=123" style="display:none;">
Y luego, en el dominio B que es example.com en cookie.php, tendrá el siguiente código:
<?php
setcookie(''a'', $_GET[''val'']);
?>
Hattip a Subin
ver RFC6265 :
El agente de usuario rechazará las cookies a menos que el atributo de dominio especifique un alcance para la cookie que incluiría el servidor de origen. Por ejemplo, el agente de usuario aceptará una cookie con un atributo de dominio de "example.com" o de "foo.example.com" de foo.example.com, pero el agente de usuario no aceptará una cookie con un atributo de dominio de "bar.example.com" o de "baz.foo.example.com".
NOTA: Por razones de seguridad, muchos agentes de usuario están configurados para rechazar atributos de dominio que corresponden a "sufijos públicos". Por ejemplo, algunos agentes de usuario rechazarán los atributos de dominio de "com" o "co.uk". (Consulte la Sección 5.3 para obtener más información).
Pero la solución anterior con imagen / iframe funciona, aunque no se recomienda debido a su inseguridad.