Tengo un Magento multisitio (una plataforma de comercio electrónico PHP). Las cuentas se comparten entre los sitios, pero las sesiones no, por lo que debe iniciar sesión en cada sitio individualmente. Estoy interesado en compartir estas sesiones.
Encontré una respuesta en el intercambio de pila de Magento. Cómo compartir sesiones entre tiendas con diferentes dominios . La recomendación es esta:
cookies.php
setcookie("frontend", htmlspecialchars($_GET['SID']), time() + 86400);
example1.com
<?php $sessionId = Mage::getSingleton('core/session', array('name' => 'frontend'))->getSessionId(); ?>
<img src="https://example2.com/cookie.php?SID=<?phpecho$sessionId;?>" style="display:none;" />
Estoy tratando de envolver mi cabeza en torno a las implicaciones de seguridad de esto. Si no me equivoco, esta URL se convierte en todo lo que se necesita para iniciar sesión como usuario.
Todos nuestros sitios son solo HTTPS, así que creo que eso ayuda a evitar que cualquier persona que escuche tráfico reciba esta URL, ¿correcto?
Un problema que podría ver es que si alguien está en la computadora física, tendría acceso a esa URL y podría usarla para iniciar sesión desde otra computadora, lo que de otro modo sería imposible sin la contraseña. La expiración de la sesión previene contra eso, ¿no? Si es así, las sesiones son actualmente bastante largas, por lo que los carros se mantienen vivos por más tiempo. ¿Qué tan cortas deberían ser las sesiones?
En resumen, ¿Es esta una implementación insegura de las sesiones de inicio de sesión en múltiples sitios? Si es así, ¿se puede hacer seguro este enfoque?