Можете ли вы надежно установить или удалить файл cookie во время обработки вызова Ajax (XHR) на стороне сервера?

StackOverflow https://stackoverflow.com/questions/89579

Вопрос

Я сам провел небольшое тестирование (точнее, во время обработки на стороне сервера обработчика запросов Ajax DWR Framework), и кажется, что вы МОЖЕТЕ успешно манипулировать файлами cookie, но это противоречит многому из того, что я читал о лучших практиках Ajax и как браузеры интерпретируют ответ от XmlHttpRequest.Примечание. Я тестировал:

  • ИЕ 6 и 7
  • Фаерфокс 2 и 3
  • Сафари

и во всех случаях стандартные операции с файлами cookie над объектом HttpServletResponse во время обработки запроса Ajax были правильно интерпретированы браузером, но я хотел бы знать, лучше ли переносить манипуляции с файлами cookie на сторону клиента или этот (гораздо более чистый) сервер боковой обработке файлов cookie можно доверять.

Я был бы рад ответам, касающимся как DWR Framework, так и Ajax в целом.

Это было полезно?

Решение

XMLHttpRequest всегда использует структуру подключения веб-браузера.Это требование для правильной работы программ AJAX, поскольку пользователь выйдет из системы, если у объекта XHR не будет доступа к пулу файлов cookie браузера.

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

Таким образом, конечным результатом является то, что манипулировать файлами cookie через AJAX безопасно.Только иметь ввиду что вызов AJAX может никогда не произойти.Это не гарантированные события, поэтому не рассчитывайте на них.

Другие советы

В контексте DWR это может быть не «безопасно».

От чтения сайт ДВР там написано:

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

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

Манипулирование файлами cookie на стороне клиента является скорее противоположностью «лучшей практики».И в этом тоже не должно быть необходимости.Файлы cookie HttpOnly были введены не зря.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top