Esta solución no requiere JavaScript, y funciona incluso si el usuario deshabilita las cookies de terceros.
En primer lugar, vamos a asegurarnos de que el agente usuario está enviando cookies:
If getCookie("c") == null then setCookie("c", "anyValue")
luego dejar que la solicitud de acabado (aka esperar para la próxima petición)
Vamos a llamar a nuestra cookie de seguimiento uaid
.
Si GET
http://child.com/any-page
y getCookie("c") is not null
y getCookie("uaid") is null
...
Redirigir a http://parent.com/give-me-a-uaid?returnTo=http://child.com/any-page
En http://parent.com/give-me-a-uaid
, la verificación de la galleta uaid
Si no existe, lo crea y añadirlo a la respuesta. Si existe, obtenga su valor.
Redirigir a http://child.com/any-page?uaid=valueOfParentsUAIDCookie
Child.com establece galletas uaid
con valueOfParentsUAIDCookie
Redirigir a http://child.com/any-page
Y, por supuesto, usted es validar la entrada, y lista blanca de direcciones URL de redirección sus :)
Flujos:
Eso no va a funcionar. La configuración de seguridad predeterminada de Internet Explorer no permitirá imágenes de otros dominios (o marcos flotantes) para establecer cookies. – BlaM
... bien, revisado: funcionará si tomo http://support.microsoft.com/kb/323752/EN-US/ en cuenta :) – BlaM
Wow, en realidad no sabía que IE6 hace esto - I no he usado marcos mucho recientemente. Entonces, ¿tiene que usar el truco de encabezados HTTP o funciona la configuración de cookies cuando no usa marcos? – Simon