LINUX.ORG.RU

возможно ли обойтись без подписывания форм csrf-токеном?

 , ,


0

1

существует токен авторизационный и существует csrf-токен. csrf-токен посылается на сервер не в куках, а например в POST-параметрах.

вообще это довольно непростой способ защиты. не проще ли было бы использовать авторизационный токен и для авторизации, и для csrf-защиты?

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

но так мало кто делает. причина только в том, что незначительное количество пользователей не имеет origin или в чём-то ещё? помогите пожалуйста разобраться


Ответ на: комментарий от MrClon

а мне кажется более простым в реализации вариант с куками. потому что браузер сам отдаёт куки серверу сайта, на котором находится. то есть ничего дополнительно делать не нужно

а в случае с csrf-токеном приходится: 1. скриптом парсить хранилище кук, 2. вытаскивать нужную, 3. прикреплять её постом или нестандартным заголовком к запросу

prozaik
() автор топика
Последнее исправление: prozaik (всего исправлений: 2)
Ответ на: комментарий от prozaik

Чего? Ты о чём вообще? При генерации страницы бекэнд добавляет в форму скритое поле с токеном, при получении формы проверяет этот токен. Вроде это всегда так делалось

MrClon ★★★★★
()

Только цсрф-токен на 100% спасает от цсрф-атак. Все остальные варианты с реферером и прочими, работают не всегда по тем или иным причинам.

deep-purple ★★★★★
()

Достаточно не использовать куки для хранения auth-токена, передавая его в явном виде (например, в HTTP-заголовках), а хранить в localStorage. Нет неявной передачи - нет проблемы.

deadNightTiger ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.