[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Хранение CSRF токена в куке
balambasik
Всем доброго дня.

Есть одностраничная админка с кучей кнопок. Обработчики кнопкок посылают ajax запросы на сервер. Отправляют, получают данные. Все как обычно.

Нужно организовать защиту от CSRF.
Реализовал так.

На стороне сервера, при отдаче страници в браузер, в теле html страници, генерится мета тег с CSRF токеном (случайный sha1 хэш), этот же хэш записывается юзеру в куку.

Потом любой ajax запрос, вместе со своими данными отправляет и этот хеш ( токен ).

А на стороне сервера я сверяю хеш который пришел с ajax запросом с хешем который в куке у юзера. Если совпадают то ок.

Вобщем вопрос. Можно ли так делать? Безопасно ли хранить токен в куке юзера? В манах пишут что нужно хранить в $_SESSION.

P.S. Кука с флагом "httponly" у javascript-а к ней доступа нет.

AllesKlar
А в чем проблема хранить данные в сессии?
Хочется больше защиты, читай юзер-агента, версию ОСи, ip etc и сравнивай.
Если что-то не сошлось, включаешь paranoid-mode и выкидываешь вообще всех.

_____________
[продано копирайтерам]
balambasik
После того как у меня на vds из за файлов сессий закончились iNode (скопилось более миллиона файлов, которые я потом еле удалил) связываться с сессиями как то неохота.
bestxp
Цитата (balambasik @ 4.04.2017 - 10:28)
После того как у меня на vds из за файлов сессий закончились iNode (скопилось более миллиона файлов, которые я потом еле удалил) связываться с сессиями как то неохота.


эм а хранить в редиске или мемкеше религия не позволяет?)
Invis1ble
Цитата (balambasik @ 4.04.2017 - 10:15)
Вобщем вопрос. Можно ли так делать? Безопасно ли хранить токен в куке юзера?

Да, можно. Собственно, это классический способ.

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.