@LeonidPokrovskiy

Как защитить PHPSESSID от кражи и оставить доступ к токену для «своего» JS? Верно ли я мыслю?

С чем имеем дело:

У меня есть сервер для чата, написанный на Ratchet. Проблема в том, что для доступа к сессии пользователя я не могу просто посмотреть в $_SESSION и узнать то, что мне нужно, например, авторизован ли юзер вообще.

Поэтому, чтобы это исправить я просто беру из document.cookie PHPSESSID, отправляю его на сервер, там нахожу файлик, который относится к этой сессии и у меня есть вся информация о сессии пользователя.

Суть проблемы

Одним из способов защиты cookie PHPSESSID является сохранение куки как httponly. Таким образом хакер не сможет через вредоносный JS получить этот куки и отправить его к себе на сервер.

Но в таком случае и я не смогу получить этот куки, чтобы его отправлять на свой WS-сервер.

Что я упускаю?
  • Вопрос задан
  • 390 просмотров
Решения вопроса 1
KodyWiremane
@KodyWiremane
Пони, Debian, LEMP, LAN, любитель
По HTTP(S) можно запросить временный токен (сервер по кукам понимает, какому пользователю его выдал), по сокету отправить сообщение типа "я такой-то, вот подтверждающий токен, аутентифицируй меня", сервер проверяет, и после успешного завершения проверки начинает считать данный канал связанным с указанным пользователем.

Можно также спокойно использовать HTTP(S) для всего, что не относится непосредственно к реалтайм-приёмопередаче (чат-сообщениям).

upd: GitHub: how check if user is authorized
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы