Cómo utilizar iframe para escribir cookies entre dominios y ser compatible con la mayoría de los navegadores
Primero modifique el archivo de hosts para simular la conexión local entre dominios
127.0.0.1 localhost
127.0.0.1 b.com
127.0 .0.1 a.com
Nuestro propósito:
Iniciar sesión desde a.com Si el inicio de sesión es exitoso, se generará una cookie de.com. Para b.com, no es necesario volver a iniciar sesión.
Dificultades encontradas:
Restricciones de la política de origen del navegador, es decir, el script de la página del sitio A no puede manipular directamente el contenido del sitio B.
Imagínese si todos los sitios web de terceros pudieran alterar la página de inicio de taobao.com a voluntad, ¿qué tipo de seguridad habría en esta sociedad?
De hecho, la lógica de la política de seguridad del navegador es muy simple, es decir, tengo la última palabra en mi propio territorio, pero no puedo controlarla fuera de mi territorio.
Solución:
a.com opera la cookie de a.com en función de la entrada del usuario, y b.com opera la cookie de b.com en función de los datos de entrada del usuario en a.com.
¿Cómo puede un usuario de.com ingresar datos de usuario de a.com y enviarlos a la página de verificación de b.com al mismo tiempo?
Aquí es donde el iframe resulta útil.
Código relacionado:
lt; form método="post" action="lt;?php print $b?gt;setcookie.php" target="ifrm" gt;lt ;fieldsetgt;
lt;legendgt;Cookie de adquisición entre dominioslt;/legendgt;
lt;bgt;Usernamelt;/bgt;
lt;pgt ;
lt; tipo de entrada="texto" id="nombre de usuario" nombre="nombre de usuario"/gt;
lt;/pgt;
lt; ;lt;botón onclick="login()" type="submit"gt;Iniciar sesión;/buttongt;lt;/pgt;
lt;/fieldsetgt;
lt; formgt;
...
lt; iframe id="ifrm" name="ifrm" style="display: none;" ?gt;setcookie.php" /gt;
Preste atención a los atributos relevantes del formulario. La página b.com/setcookie.php es para verificar la entrada del usuario de a.com y luego generar la cookie de b.com De esta forma, las siguientes visitas a b.com no requerirán que introduzcas de nuevo tu usuario y contraseña.
Desventajas:
Primero debe configurar la cookie para el sitio de dominio cruzado y luego configurar la cookie para este dominio;
Si el sitio de dominio cruzado la solicitud del sitio lleva mucho tiempo y afecta directamente el tiempo de operación de este dominio;
Además, se necesita código adicional para manejar la operación después de que falla la solicitud del sitio entre dominios
IE debe configurarse para aceptar cookies (privacidad), lo cual es más inconveniente.
Adjunto: /Files/1000/xdm.rar
Método de prueba:
1) Modificar el archivo hosts según el inicio del artículo
2 ) Inicie sesión en a.com/default.php
3) Ingrese los datos del formulario
4) Haga clic en el enlace debajo de a.com/default.php para vaya a b.com/getcookie. php ve la cookie de b.com