Xpoint
   [напомнить пароль]

Кукис не передается в страницу, загружаемую из чужого IFRAME - глюк MSIE?

Метки: [без меток]
2005-10-19 14:34:17 [обр] Даниэль Алиевский(9/125)[досье]

Покорнейше прошу комментариев по следующей ситуации. Глюк ли это MSIE, документированное поведение, или это я что-то делаю не так.

Есть 3 страницы A, B, C. Страницы A и C расположены на моем сайте, страница B - на чужом. Страница B содержит внутри IFRAME, в котором находится моя страница C.

Конкретнее.
A - это мой основной сайт (webwarper).
C - это URL, выдающий клиенту мою exe-программу: http://webwarper.net/.../что-то-там.exe На самом деле это Perl-скрипт, "маскирующийся" под EXE-шку и действительно выдающий ее по запросу броузера, но при этом записывающий в мои логи некоторую статистику.
B - это страница каталога software, так называемая "download-страница". Когда посетитель заходит на нее, он видит всякие красивые сообщения, а через некоторое время начинается закачка утилиты C.

Так вот. На странице A я ставлю некий кукис (path=/, expires=будущее). В серверном скрипте C я проверяю наличие этого кукиса. (В моем случае, я хочу узнать и отразить в логах тот факт, что посетитель уже побывал на сайте A раньше.)

Если я открываю C в броузере непосредственно (побывав ранее на A), или, например, открываю C по ссылке со страницы A - все нормально, C видит кукис.

А вот если я открываю B - неважно, каким способом (на самом деле по ссылке с A) - то кукиса нет!

Такое впечатление, что MSIE, принимая решение о передаче или не-передаче кукисов на сервер A-C, исходит из URL страницы, содержащей IFRAME. Этот домен для меня чужой, и к нему мои кукисы, конечно, передавать нельзя.

В итоге получается, что у меня нет способа в момент закачки программы отличить "своего" пользователя от нового, пришедшего ко мне благодаря каталогу software. Ибо большинство каталогов software имеет обыкновение фокусничать с IFRAME и подобными штуками. Все это печально. В соответствии со здравым смыслом и рекомендациями большинства каталогов, я рекомендую уже имеющимся посетителям скачать свою программу не прямо, а через каталог software (для поднятия популярности в его рейтинге). И не могу при этом отличить download-ы, созданные трафиком с моего сайта, от "очень ценных" download-ов, полученных благодаря раскрутке в каталоге.

Ситуация, разумеется, проверена и на простых тестовых страницах. Я выложил A, B, С на локальном сервере, ставил кукис в A, писал все пришедшие кукисы в лог в скрипте C, в странице B поставил iframe, содержаший C. После этого обращался к A с основного IP, а к B - через 127.0.0.2. Скрипт C не видел кукиса. При этом, вроде как, в FireFox эффект не проявляется - там все нормально. Проблема лишь с MSIE.

Я пробовал ставить кукису полный domain= (хотя поддоменов у меня нет). Не помогает.

Есть ли какие-нибудь идеи? Заранее благодарен.

спустя 24 минуты [обр] Ярослав Сюзёв (yara)(2/305)[досье]
P3P ?
спустя 8 минут [обр] Даниэль Алиевский(9/125)[досье]

Кажется, в точку. Снижаем privacy, и все работет.
Нда, про P3P я совсем как-то забыл... Никогда не возникало потребности разбираться. Буду изучать P3P.

Большое спасибо.

спустя 5 дней [обр] Даниэль Алиевский(9/125)[досье]

На самом деле обнаружился еще один способ. Способ прямизной не отличается: положить страницу B внутрь фрейма на странице B', расположенной уже на моем сайте. Тогда MSIE со спокойной совестью передает в C кукис, раз самая верхняя страница B' находится на том же домене.

Впрочем, в конкретно моем случае способ помог мало. Ибо хозяева каталога software, не будь дураки, добавили в B проверку, что она находится внутри фрейма, и в этом случае меняют top.location. Проверка, конечно, "обходится" (кладем в B' переменную "var location='blablabla'"), но заниматься такими фокусами нет никакого желания - верный путь к исключению из каталога :)

Конечно, правильнее поддержать P3P.

спустя 39 минут [обр] Даниэль Алиевский(9/125)[досье]

А совсем правильный способ отличить своего пользователя от "новичка" оказался на удивление тривиален :)

У большинства сайтов есть 2 рабочих доменных имени - одно с начальным www. , другое без него. Беглое изучение "чистой" статистики показало, что пара десятков посетителей зашли - все без исключения - с www.-домена. Ибо интересующий меня download-каталог "считает" своим основным адресом www.soft32.com.

Стало быть, мне остается продвигать среди своих посетителей ссылку на каталог без начального www. и считать всех посетителей, пришедших с домена www.soft32.com, "новыми". Дешево и сердито.

Еще раз спасибо за подсказку с P3P. Тему можно закрывать.

Powered by POEM™ Engine Copyright © 2002-2005