Можете ли вы надежно установить или удалить cookie во время обработки Ajax (XHR) на стороне сервера? - PullRequest
7 голосов
/ 18 сентября 2008

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

  • IE 6 и 7
  • Firefox 2 и 3
  • Safari

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

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

Ответы [ 3 ]

8 голосов
/ 18 сентября 2008

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

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

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

1 голос
/ 28 мая 2009

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

Из чтения на сайте DWR написано:

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

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

0 голосов
/ 18 сентября 2008

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

...