Неубиваемый файл cookie (ASP3, PHP5, IIS5, FF3.5, IE8) - PullRequest
2 голосов
/ 08 августа 2009

У меня есть система, которая генерирует cookie в PHP, а затем должна удалить его из классического ASP. Это быстрый и грязный блок разработки, просто запасная машина XP с IIS5, PHP5 и ASP3. Я использовал файл hosts для создания поддельного доменного имени (www.localtest.com), так как другие части процесса не будут работать с localhost.

Файл PHP находится в подкаталоге вне корня сайта, но домен cookie - это .localtest.com, а путь - корень (/). Имя файла cookie - «authkey», а значение - 32-байтовый хэш-код.

Файл ASP находится в корне сайта (на данный момент). После того, как PHP его создаст, он может отлично прочитать cookie, но, что бы я ни пытался, я не могу изменить cookie вообще с ASP - он не изменит значение, не говоря уже об изменении срока действия. И Firefox 3.5, и IE 8 игнорируют все попытки, которые я предпринял (полагает, что когда они наконец-то согласятся, это будет так).

Я перепробовал множество вариантов - установка только срока действия (для широкого диапазона значений в различных форматах), установка всех параметров в точном соответствии с cookie, кроме срока действия, с использованием Response.AddHeader для создания Set-Cookie заголовок со всеми этими вариациями, устанавливая значение в false, а затем, наконец, просто попытка изменить значение на какую-то другую строку, которая не удалась.

Что, черт возьми, происходит? Является ли это некоторым побочным эффектом ASP при работе с «поддельным» доменом? Я разработал этот способ более 10 лет, не видя, чтобы у ASP были какие-либо проблемы с указанным хостами доменом, хотя у меня никогда не было случая удалить куки (как ни странно).

Я особенно удивлен, что даже не смог установить значение.

Ответы [ 2 ]

2 голосов
/ 08 августа 2009

Используйте Fiddler или аналогичный для просмотра реального HTTP-трафика - технология сервера не должна иметь значения, пока отправляются правильные заголовки HTTP. Предположительно это не так, но вы не будете знать наверняка, если не посмотрите на поток HTTP.

(Обычно я бы рекомендовал Wireshark , но это не работает, когда клиент и сервер находятся на одном компьютере.)

0 голосов
/ 09 августа 2009

Weird.

Проблема была в ведущей точке в имени домена. Поскольку мой сайт не использует поддоменов, он мне не нужен, но, очевидно, если эта точка есть, браузеры не будут удалять или изменять cookie.

Мне интересно, является ли это новым поведением, так как я знаю, что многие системы полагаются на это для создания нейтральных к суб-домену файлов cookie (таких как phpBB).

Кроме того, чтобы удалить cookie, мне нужно было указать все - домен, путь и дату, но я думаю, что это на самом деле соответствует RFC, поэтому я не слишком обеспокоен этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...