Как управлять файлами cookie - с помощью JavaScript или HTTP Set-Cookie? - PullRequest
2 голосов
/ 10 марта 2011

Я создаю веб-приложение в среде GAE.Он интенсивно использует AJAX / JSON для отправки / получения данных и все об этом.Я не сильно беспокоюсь о браузерах с отключенной JS и устаревших браузерах, так как это мой личный проект, и я пытаюсь сделать его простым и не раздутым в коде.Итак, я активно использую JavaScript в проекте.Посоветуйте, пожалуйста, как лучше управлять файлами cookie и сессиями в этом случае.У меня есть два варианта - использовать HTTP Set-Cookie, где это возможно, и JavaScript, где это не так.Вторая противоположность - используйте JavaScript там, где это возможно.Оба варианта работают нормально, но я хочу сделать это правильно.В сценарии JavaScript, когда нужно установить cookie, я получаю некоторые данные через AJAX с некоторыми ключами, затем с помощью плагина jQuery устанавливаю эти ключи в cookie и наоборот, читаю cookie с помощью JS и отправляю их через AJAX.Какие плюсы и минусы обоих методов?Спасибо!

Ответы [ 3 ]

3 голосов
/ 10 марта 2011

Вы должны устанавливать свои куки, где это наиболее удобно.
Это, вероятно, означает, что некоторые куки будут приходить с сервера, а некоторые с клиента.

Обратите внимание, однако, что по соображениям безопасности, высокий-рисковые файлы cookie (например, токен входа в систему) должны быть только для HTTP, чтобы к ним нельзя было получить доступ из Javascript.

(само собой разумеется, что они должны быть только для SSL)

1 голос
/ 10 марта 2011

Файлы cookie всегда связаны с заголовком HTTP, поэтому нет никаких улучшений при чтении через JavaScript и отправке их через AJAX на сервер.

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

Вещи, подобные идентификатору сеанса, в любом случае требуют серверной работы, поэтому поддержание cookie через HTTP Set-Cookie представляется наиболее простым способом сделать это.

0 голосов
/ 10 марта 2011

Когда вы устанавливаете куки с помощью заголовков, у вас есть возможность установить только HTTP (т.е. нет доступа к javascript) и только SSL.

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

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