2008-11-24 26 views

Respuesta

17

En ambos dominios, coloque una imagen u otro elemento web extraído del otro dominio. Use la URL para notificar al otro dominio que el usuario X está en el dominio A, y permita que el dominio B asocie ese ID de usuario con ese usuario en su sistema.

Es un poco complejo de llevar a cabo correctamente, pero si lo hace funcionará muy bien.

Vinko señala en un comentario (¡gracias!) Que no debería dar por sentado que comprende los riesgos de seguridad involucrados. Si esta información es de algún valor para cualquier persona, entonces debe asegurarse de utilizar el cifrado, la autenticación, etc. apropiados para evitar la divulgación de información confidencial y evitar varios ataques (repetición, hombre en el medio, etc.). Esto no debería ser demasiado oneroso ya que usted controla ambos sitios web y puede seleccionar una clave secreta segura para ambos, ya que la comunicación solo va entre los dos servidores a través de esta URL especial. Sin embargo, tenlo en cuenta.

-Adam

+3

Tendría que agregar algo de encriptación y evitar repetir los ataques. Puedes hacer eso haciendo que A y B compartan un secreto. –

+0

Depende. Si la información es de poco o ningún valor, entonces no hay necesidad, pero si está compartiendo algo importante, entonces necesita involucrar autenticación, encriptación, etc. Esto complica un poco las cosas, pero como usted controla ambos sistemas no es difícil tener un secreto compartido. –

+0

No es difícil, pero tiene que ser considerado. Y no olvides hacer esos URI por única vez. –

1

no lo hace, las cookies están unidos a un dominio. Hay restricciones en esto y se conoce como cross scripting scripting.

Ahora, para algo de ayuda a su problema. Lo que puedes hacer es crear una secuencia de comandos que ayude a unirlas.

Puede reescribir globalmente todos los enlaces a su segundo sitio que necesitarán información de cookies desde el primer sitio.

Guardará todas las cookies del sitio-a en una base de datos que ambas pueden leer, luego agregará programáticamente la cadena de consulta de cookie-id en todos los enlaces al sitio-b, luego buscará esa identificación de cookie y volverá establecer las cookies bajo el nuevo dominio.

Hay una muy buena biblioteca de abstracción de bases de datos PHP (PHP ADODB) y tiene un plugin para compartir sesiones que hace que todo esto sea mucho más fácil.

1

Bueno, si sus dominios son solo subdominios diferentes, podría hacerlo de una manera fácil creando una cookie .yourdomain.com. Luego, la cookie se pasa junto con todas las solicitudes en todos los subdominios.

No es tan simple si desea compartir cookies entre diferentes dominios, ya que los navegadores lo consideran un riesgo de seguridad.

¿Cuál es el ejemplo exacto?

En el caso de algún software como Google Analytics y otras imágenes de seguimiento, etc. es posible que deba utilizar encabezados P3P para que el navegador sepa que no le importa la seguridad al enviar las cookies. Luego, una imagen que solicita el navegador obtiene una cookie como parte de la respuesta y también inspecciona P3P. Si todo está bien, guarda la cookie en el disco duro y la próxima vez que solicite una imagen en su sitio web (pero es parte de la página de otros dominios) el navegador enviará la cookie. Pero supongo que esto no ayuda ;-)

Nunca he usado un valor de cookie entre dominios en un sentido directo de ello.

1

No estoy seguro acerca de las implicaciones de seguridad, pero hay una configuración de Apache que le permite cambiar el dominio de una cookie.

# in httpd.conf (or equivalent) 
php_value session.cookie_domain mydomain.com 

He utilizado con éxito este método para los subdominios, pero nunca he intentado para diferentes dominios.

También hay un método para establecer la dirección de las variables en PHP descrito en http://us.php.net/manual/en/function.session-set-cookie-params.php. La documentación no hace referencia a la capacidad o incapacidad de establecer cookies en un dominio diferente.

Hay un Stack Overflow thread diferente sobre este mismo tema, pero no creo que haya sido suficientemente respondido.

3

Si tiene dos sitios utilizando el mismo dominio y le gustaría compartir las galletas entre ellos, establecer algo como esto en su archivo settings.php para cada dominio: ''

ini_set('session.cookie_domain', '.EXAMPLE.com'); 

Asegúrese de incluir el líder antes del nombre de dominio, o no funcionará.

Esto permite a los usuarios mantener el estado de inicio de sesión entre los sitios configurados para las cookies de todo el dominio.

Esto también puede tener efectos secundarios negativos, por lo tanto, no lo haga a menos que esté familiarizado con todas las cookies involucradas para los sitios donde desea compartir las cookies.

Cuestiones relacionadas