Digamos que tengo un sitio web llamado a.com
, y cuando se carga una página específica de este sitio, diga el enlace de la página, me gustaría configurar una cookie para otro sitio llamado b.com
, y luego redirigir al usuario b.com
.
Quiero decir, al cargar a.com/link
quiero configurar una cookie b.com
y redirigir al usuario b.com
.
Lo probé y el navegador realmente recibió la cookie a.com/link
, pero no envió esa cookie en la solicitud de redirección b.com
. ¿Es normal?
¿Podemos establecer cookies para otros dominios?
javascript
cookies
redirect
Rasoul Zabihi
fuente
fuente
Respuestas:
No puede configurar cookies para otro dominio. Permitir esto presentaría una enorme falla de seguridad.
Necesita obtener b.com para configurar la cookie. Si a.com redirige al usuario a
b.com/setcookie.php?c=value
El script setcookie podría contener lo siguiente para configurar la cookie y redirigir a la página correcta en b.com
fuente
Similar a la respuesta principal, pero en lugar de redirigir a la página y viceversa, lo que causará una mala experiencia del usuario, puede configurar una imagen en el dominio A.
Y luego, en el dominio B que es example.com en cookie.php, tendrá el siguiente código:
Hattip a Subin
fuente
Probaly puedes usar
Iframe
para esto. Facebook probablemente usa esta técnica. Puedes leer más sobre esto aquí . Stackoverflow utiliza una técnica similar, pero con almacenamiento local HTML5, más sobre esto en su blogfuente
No es posible configurar cookies para otro dominio.
Si desea pasar datos a otro dominio, puede codificar esto en la url.
fuente
No puedes, al menos no directamente. Eso sería un riesgo de seguridad desagradable.
Si bien puede especificar un atributo de Dominio , la especificación dice "El agente de usuario rechazará las cookies a menos que el atributo de Dominio especifique un alcance para la cookie que incluya el servidor de origen".
Como el servidor de origen es
a.com
y eso no incluyeb.com
, no se puede configurar.Debería
b.com
configurar la cookie en su lugar. Puede hacerlo a través de (por ejemplo) redirecciones HTTP haciab.com
y hacia atrás.fuente
evil-hack.com
podría tener una cookie configurada paratheir-favourite-website.com
eso cambiaría sus preferencias en ese sitio web.En caso de que tenga
a.my-company.com
y enb.my-company.com
lugar de soloa.com
yb.com
pueda emitir una cookie para el.my-company.com
dominio, se aceptará y se enviará a ambos dominios.fuente
ver RFC6265 :
Pero la solución mencionada anteriormente con image / iframe funciona, aunque no se recomienda debido a su inseguridad.
fuente
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 de publicación correcto. (¡Debe evitar que otros remitentes no deseados le envíen mensajes! Eso depende de usted y del mecanismo que decida utilizar para evitar que eso suceda)
fuente
En este enlace, encontraremos la solución Enlace .
fuente
Envíe una solicitud POST desde A. Las solicitudes de publicación están solo en el lado del servidor y el cliente no puede acceder a ellas.
Puede enviar una solicitud POST de
a.com
queb.com
usando CURL (recomendado, serverside) o una ocultamethod="POST"
forma (del lado del cliente). Si opta por lo último, es posible que desee ofuscar su JavaScript para que el usuario no pueda comprender el algoritmo e interferir con él.Haga una puerta de enlace
b.com
para configurar las cookies:Si desea llevar la seguridad un paso más allá, implemente una función en ambos lados (
a.com
yb.com
) para cifrar (activara.com
) y descifrar (activar)b.com
) datos utilizando un cifrador criptográfico.Si está intentando hacer algo que debe ser absolutamente seguro (por ejemplo, transferir una sesión de inicio de sesión), pruebe oAuth o inspírese en https://api.cloudianos.com/docs#v2/auth
fuente