Подтвердить что ты не робот

* Действительно * удаление файлов cookie с помощью javascript

Способ удаления файлов cookie в javascript - установить дату истечения срока действия в прошлом. Теперь это фактически не удаляет файл cookie, по крайней мере, в Firefox. Это просто означает, что cookie будет удален при закрытии браузера.

Это проблема для нас: у нас есть продукт, который включает в себя архивирование веб-страниц с потенциально многих сайтов, причем весь этот контент хранится на нашем сервере. И чтобы убедиться, что страницы отображаются правильно, мы включаем все js. Однако часто файлы cookie устанавливаются js, и, учитывая, что страница кэшируется на нашем сервере, эти файлы cookie устанавливаются в нашем домене.

Таким образом, со временем куки из десятков архивных сайтов растут в нашем домене. И в конечном итоге заголовок Cookie превышает максимальную длину содержимого, что приводит к ошибке HTTP 400.

И поскольку наши клиенты в основном в корпоративной среде, они никогда не перезагружают свои компьютеры или не закрывают свои браузеры: их можно оставить на несколько месяцев. Таким образом, это "мягкое" удаление не работает, по крайней мере, не надежно.

Есть ли способ физически удалить куки внутри сессии в javscript? Или, альтернативно, есть ли способ остановить их установку?

4b9b3361

Ответ 1

Это невозможно. Период. Я боролся с этим в течение нескольких недель, не найдя решения.

Кто бы ни изобрел геттер/сеттер cookie, должен быть% insert_painful_punishment_here%.

В частности, Internet Exploder - это зверь, когда дело доходит до удаления файлов cookie. Я не могу вспомнить точную проблему, но я думаю, что это связано с именами https и cookie, содержащими ;.

Все, что я могу предложить, это обходной путь: отправьте тело ответа с ответом 400, что-то вроде "перезагрузите браузер".

Ответ 2

В дополнение к установке истечения в прошлом установите значение в пустую строку. Это, по крайней мере, уменьшит размер файла cookie.

Я думаю, что файлы cookie должны быть немедленно удалены во всех браузерах. Например, когда я выхожу из веб-сайта, Firefox не требует, чтобы я закрыл свой браузер, чтобы удалить файл cookie, который показывает, что я зашел на сайт. Если этого не происходит, я предлагаю вам изучить ошибки Firefox и, возможно, открыть с ними новую.

Тем временем я бы посмотрел на свой веб-сервер и посмотрел, возможно ли установить максимальную длину контента на нечто большее, чем оно уже есть.

Ответ 3

Вы можете перезаписать файл cookie новым.

Ответ 4

"Это потому, что мы НЕ используем iframe, у нас есть эта проблема. Кашированная страница обрабатывается нашим сервером, поэтому любые файлы cookie устанавливаются под нашим доменом". --OP

Если у вас нет контроля над javascript, который устанавливает файлы cookie (что кажется крайне странным, почему у вас нет элемента управления?), вы можете постоянно читать и очищать cookie, выгружая данные в другую большую базу данных (желательно сервер или клиентское хранилище HTML5).