Red de conocimiento informático - Material del sitio web - Cómo utilizar iframe para escribir cookies entre dominios y ser compatible con la mayoría de los navegadores

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