2011-05-19 27 views
6

He visto muchas publicaciones aquí sobre cómo hacer que las cookies funcionen dentro de un iframe en IE, y he intentado varias de las soluciones, pero hasta ahora he tenido sin suerte. Esto es lo que estoy tratando con: (. Un widget)No se pueden establecer cookies en IFRAME en IE, incluso con el encabezado P3P

  • tengo un iframe que se crea a través de Javascript en el sitio de un cliente que no tengo control de las instalaciones del cliente. Necesito configurar cookies para mantener al usuario conectado dentro del iframe, y funciona en Chrome y Firefox, pero no en IE 7/8. No he probado IE 6, pero supongo que tiene el mismo problema.

  • Creé una política P3P utilizando el editor de políticas de IBM, y el editor dijo que la política compacta era aceptable bajo la seguridad de IE, ya sea en Bajo, Medio o Alto. El CP que estoy usando es:

P3P: policyref="/w3c/p3p.xml" CP="CAO DSP COR CURa ADMa DEVa PSAa PSDa CONi TELi OUR IND PHY ONL UNI COM NAV INT DEM CNT PRE" (He intentado varias otras PC de la gente de trabajo, pero han visto ninguna diferencia en el resultado.)

  • el servidor web (Nginx) está sirviendo este encabezado P3P con cada archivo. No lo estoy sirviendo desde el código.

  • El archivo p3p.xml existe y coincide con la política de compactos. El p3p.xml valida usando el validador W3C P3P.

  • Incluso con el encabezado P3P (sin importar cuál probé), IE me da el "mal de ojo" en la barra de estado en la parte inferior y no me deja configurar las cookies. Se muestran como bloqueados en el informe de privacidad.

  • He leído la publicación de Piskvor en SO sobre este tema: Cookie blocked/not saved in IFRAME in Internet Explorer pero no he podido reproducir lo que fue capaz de hacer en su sitio de demostración: http://newmoon.wz.cz/test/page.php?send_p3p=1. Supongo que es porque estoy obteniendo el mal de ojo y él no. He hecho todo lo que leí como recomendación para deshacerme del mal, pero aún persiste. Burlándose de mí.

  • Mi página de prueba está aquí si quiere probarla: http://truelike.com/js/bobs/frametest.php Las páginas de configuración/lectura funcionan bien cuando se ven fuera del marco flotante, pero no funcionan en absoluto cuando se usa IE.

  • Como referencia, estoy usando PHP en el back-end.

Cualquier ayuda en absoluto sería muy apreciada, nos estamos desesperando aquí.

Gracias!

Respuesta

4

Así que resolví esto por mi cuenta. Parece que el problema fue con el HTTPUserIDModule de NGINX (http://wiki.nginx.org/HttpUserIdModule). Había estado usando eso para enviar la cabecera P3P, pero nginx no estaba enviando la cabecera consistentemente, tal vez debido a esta línea en su documentación:

Directiva

asigna valor para la cabecera P3P , que será enviado junto con la cookie .

Estaba viendo los encabezados cuando reviso curl o lynx, pero no cuando lo verifiqué con Firebug o Charles.Tal vez haya una opción de configuración para arreglar esto, pero no pude encontrarlo.

De todos modos, si saca la directiva del encabezado FUERA del HTTPUserIdModule y simplemente envía el encabezado manualmente en el código, funciona. Probablemente funcione si envía manualmente el encabezado usando el HTTPHeadersModule http://wiki.nginx.org/HttpHeadersModule, pero aún no lo he probado.

Una vez que estaba funcionando a través del código, vi que no necesitaba el encabezado en todos los archivos, tenerlo solo en la configuración de archivos/obtener cookies era suficiente, contrariamente a muchos de los consejos que he visto.

Además, mi CP era aparentemente demasiado agresivo, a pesar de que el editor de políticas de IBM dijo que estaba bien. Usé un CP más básico, y funcionó.

+0

¿Usó sólo una política compacta o también el archivo P3p.xml? ¿Podría decir en qué sitio usó esta política? He estado chocando mi cabeza contra la pared por algún tiempo con respecto a IE8 con políticas de seguridad media y p3p. – Sergi

+0

Utilicé solo la política compacta, específicamente: 'encabezado ('P3P: CP =" CAO PSA NUESTRO "');' – Wemmick

+0

Lo intentaré. ¿Necesita utilizar cookies para iniciar sesión en los usuarios? – Sergi

0

cambios con nginx 0.8.20
Solución de error: "Set-Cookie" y líneas de cabecera de respuesta FastCGI "P3P" eran no oculta, mientras que el almacenamiento en caché si no hay directivas "fastcgi_hide_header" eran utilizado con ningún parámetro.

Nginx Changes log

Cuestiones relacionadas