Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / защита от CSRF через токены. / 25 сообщений из 94, страница 1 из 4
27.12.2021, 22:27
    #40123467
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защита от CSRF через токены.
Помогите плиз вспомнить про токены.
упрошённо:
Я зашёл на сайт сбера и не вышел, потом перешёл на сайт злоумышленника.
Вот есть на вражеском сайте форма, которая шлёт запрос на сайт сбера, который переводит деньги с моего счёта в банке на счёт злоумышленника. Это работает за счёт того, что при каждом запросе шлются куки. В данном случае куки сбера.

Общеизвестно, что правильное решение это фикс проблемы через токены. Сервер генерит токен и отправляет клиенты(js, браузер)
Как я понял - этот токен кладётся в сессию(вроде как те же куки, не ? ). и сервер каждый проверяет совпадает ли последний сгенерированный токен с тем, что пришёл на сервер.

Вот я ума не приложу как это помогает в описанной мной ситуации. Если токен хранится в куках, то он также опять с формой уедет в запросе. Разве нет ? В чем тоность ? что я упускаю ?
...
Рейтинг: 0 / 0
27.12.2021, 23:00
    #40123470
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защита от CSRF через токены.
Я думаю не сработает. Попробуй хакни сам себя. Пополни себе телефон. Скорее всего это не сработает
и сообщение об ошибке как-раз будет нести в себе ответ на твой вопрос.
...
Рейтинг: 0 / 0
28.12.2021, 00:08
    #40123478
защита от CSRF через токены.
Если речь именно про способ с Cookies, то тут такой подход:
1. Сервер присылает токен в куках. Его вычитывает JS. Для этого нужно чтоб кука не была HTTP-only.
2. Да, кука эта будет слаться с каждым запросом. Однако серверу на это будет наплевать. Главное - чтоб JS при формировании AJAX запроса поместил это значение в отдельный HTTP Header . Именно его будет вычитывать сервер.

Таким образом мы гарантируем что запрос послали именно с нашей страницы. JS на чужом сайте не сможет прочесть куку.

questionerВот я ума не приложу как это помогает в описанной мной ситуации. Если токен хранится в куках, то он также опять с формой уедет в запросе. Разве нет ? В чем тоность ? что я упускаю ?Мм.. а здесь ты что-то про форму говоришь. Если речь про HTML form (что редкость на сегодняшний день), то тут хедер не сработает - потому как HTTP запрос уйдет без участия JS. В таком случае токен встраивается в hidden поле у формы. И если это наш сервер сгенерил форму, значит он смог правильный токен указать.
...
Рейтинг: 0 / 0
28.12.2021, 00:48
    #40123482
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защита от CSRF через токены.
Stanislav Bashkyrtsev
Если речь именно про способ с Cookies, то тут такой подход:
1. Сервер присылает токен в куках. Его вычитывает JS. Для этого нужно чтоб кука не была HTTP-only.
2. Да, кука эта будет слаться с каждым запросом. Однако серверу на это будет наплевать. Главное - чтоб JS при формировании AJAX запроса поместил это значение в отдельный HTTP Header . Именно его будет вычитывать сервер.

Таким образом мы гарантируем что запрос послали именно с нашей страницы. JS на чужом сайте не сможет прочесть куку.

questionerВот я ума не приложу как это помогает в описанной мной ситуации. Если токен хранится в куках, то он также опять с формой уедет в запросе. Разве нет ? В чем тоность ? что я упускаю ?
Мм.. а здесь ты что-то про форму говоришь. Если речь про HTML form (что редкость на сегодняшний день), то тут хедер не сработает - потому как HTTP запрос уйдет без участия JS. В таком случае токен встраивается в hidden поле у формы. И если это наш сервер сгенерил форму, значит он смог правильный токен указать.
Ну вот spring security https://docs.spring.io/spring-security/site/docs/5.0.x/reference/html/csrf.html#csrf-include-csrf-token-form

тут про форму пишут. Вроде как должно же работать.

ну и опять же вспоминаются времена, что чтобы мигрировать с одной версии спринга на другую включался этот CSRF и поначалу приходилось его выключать.
...
Рейтинг: 0 / 0
28.12.2021, 00:59
    #40123484
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защита от CSRF через токены.
Возможно это легаси? Ребят UI-щики. Как щас формы лупят? JavaScript-ом вроде.
...
Рейтинг: 0 / 0
28.12.2021, 01:14
    #40123488
защита от CSRF через токены.
questioner
тут про форму пишут. Вроде как должно же работать.
Работать будет, да. Но Cookies же в этом способе не используются.
mayton
Возможно это легаси? Ребят UI-щики. Как щас формы лупят? JavaScript-ом вроде.
Счас мы обычно шлем AJAX запросы JS'ом. Form submission (как вот на этом форуме) редко можно встретить.
...
Рейтинг: 0 / 0
28.12.2021, 01:49
    #40123492
Sergunka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защита от CSRF через токены.
questioner
Помогите плиз вспомнить про токены.
упрошённо:
Я зашёл на сайт сбера и не вышел, потом перешёл на сайт злоумышленника.
Вот есть на вражеском сайте форма, которая шлёт запрос на сайт сбера, который переводит деньги с моего счёта в банке на счёт злоумышленника. Это работает за счёт того, что при каждом запросе шлются куки. В данном случае куки сбера.

Общеизвестно, что правильное решение это фикс проблемы через токены. Сервер генерит токен и отправляет клиенты(js, браузер)
Как я понял - этот токен кладётся в сессию(вроде как те же куки, не ? ). и сервер каждый проверяет совпадает ли последний сгенерированный токен с тем, что пришёл на сервер.

Вот я ума не приложу как это помогает в описанной мной ситуации. Если токен хранится в куках, то он также опять с формой уедет в запросе. Разве нет ? В чем тоность ? что я упускаю ?


Первый случай описан подробно на owasp сайте так называемая

Cross Site Request Forgery (CSRF) атака

https://owasp.org/www-community/attacks/csrf

Токен зависит от того какой протокол Вы желаете использовать обычно пользуются OAuth 2 https://oauth.net/2/

Обычно токен хранится в сервер сессии и дохнет вместе с сессией. Если это хозяйство класть в куку, то да есть вариант взлома хотя и есть вариант взлома по сессии так же. Основной ограничитель это время сессии и токена. Часто токен может быть использован только один раз к примеру тоже хорошо работает.
...
Рейтинг: 0 / 0
28.12.2021, 01:54
    #40123493
защита от CSRF через токены.
Sergunka
Токен зависит от того какой протокол Вы желаете использовать обычно пользуются OAuth 2 https://oauth.net/2/

Обычно токен хранится в сервер сессии и дохнет вместе с сессией. Если это хозяйство класть в куку, то да есть вариант взлома хотя и есть вариант взлома по сессии так же. Основной ограничитель это время сессии и токена. Часто токен может быть использован только один раз к примеру тоже хорошо работает.
Причем тут OAuth2? CSRF token != Oauth2 token.
...
Рейтинг: 0 / 0
28.12.2021, 07:53
    #40123505
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защита от CSRF через токены.
Stanislav Bashkyrtsev
Счас мы обычно шлем AJAX запросы JS'ом. Form submission (как вот на этом форуме) редко можно встретить.
ага, щаз.
Переходы между страницами по урл редко используются..
Смешно.
...
Рейтинг: 0 / 0
28.12.2021, 08:10
    #40123510
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защита от CSRF через токены.
questioner
Как я понял - этот токен кладётся в сессию(вроде как те же куки, не ? ). и сервер каждый проверяет совпадает ли последний сгенерированный токен с тем, что пришёл на сервер.
он кладется ТВОИМ кодом и с каждым запросом код другой.
Этот ДРУГОЙ код хакер запустить не может.
Он может только свой фальшивый код отправить.
...
Рейтинг: 0 / 0
28.12.2021, 12:01
    #40123573
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защита от CSRF через токены.
PetroNotC Sharp
questioner
Как я понял - этот токен кладётся в сессию(вроде как те же куки, не ? ). и сервер каждый проверяет совпадает ли последний сгенерированный токен с тем, что пришёл на сервер.
он кладется ТВОИМ кодом и с каждым запросом код другой.
Этот ДРУГОЙ код хакер запустить не может.
Он может только свой фальшивый код отправить.


А чем эта ситуация отличается от сообщения в сабже?

Ну вот зашёл я на сайт банка, посёрфил. У меня в куках лежит токен.
Зашёл на сайт хакера, нажал на форму/кнопку, которая отправляет запрос на сайт банка. В куках лежит токен. Он отправляется. Где-то что-то я упускаю определенно.
...
Рейтинг: 0 / 0
28.12.2021, 12:10
    #40123577
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защита от CSRF через токены.
questioner
В куках лежит токен. Он отправляется
еще распиши на действия. Тут ошибка..
Токен в куке или в поле запроса или...
Готовится НА КАЖДЫЙ ЗАПРОС.
Покажи где готовит хакер куку на ЗАПРОС. Содержимое куки.
Достаточно туда время записать.
...
Рейтинг: 0 / 0
28.12.2021, 13:04
    #40123600
защита от CSRF через токены.
questioner
PetroNotC Sharp
пропущено...
он кладется ТВОИМ кодом и с каждым запросом код другой.
Этот ДРУГОЙ код хакер запустить не может.
Он может только свой фальшивый код отправить.


А чем эта ситуация отличается от сообщения в сабже?

Ну вот зашёл я на сайт банка, посёрфил. У меня в куках лежит токен.
Зашёл на сайт хакера, нажал на форму/кнопку, которая отправляет запрос на сайт банка. В куках лежит токен. Он отправляется. Где-то что-то я упускаю определенно.
Ты не сильно обращай внимание на то что петро пишет. Он как обычно - вопрос не понял, в теме не разобрался, зато спешит показать всем какой он умный. Советую его не кормить, просто игнорируй. А то эта теме превратится в кашу как и все остальные.
...
Рейтинг: 0 / 0
28.12.2021, 13:14
    #40123601
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защита от CSRF через токены.
Stanislav Bashkyrtsev,
Долго думал чтоб это написать?)))))) LOL
...
Рейтинг: 0 / 0
28.12.2021, 13:49
    #40123608
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защита от CSRF через токены.
Кажется суть в том, что мы по сути в куках имеем только JSessionId.
Само запоминание токена происходит на стороне сервера. А бэкенд ждёт токен в конкретном поле. У злоумышленника нет возможности достать ничего из сессии. Таким образом он не может достать из сессии значение этого токена.
...
Рейтинг: 0 / 0
28.12.2021, 14:11
    #40123614
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защита от CSRF через токены.
Наиболее важные действия банк проводит через многофакторку. Если хакер даже проломит первый
уровень защит - на следующем ему надо будет получить СМС из твоего телефона или 6 цифр токен-генератора
опять-же из твоего телефона которые меняются каждые 30 секунд.
...
Рейтинг: 0 / 0
28.12.2021, 14:16
    #40123616
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защита от CSRF через токены.
mayton,
Верно, несколько уровней.
Первый уровень - отправка сессионной куки с айди сессии это решается вторым уровнем.
Второй уровень это добавить к каждому запросу секрет.
Видели на банкомате без вставки карты банкомат запрашивает приложить карту на КАЖДУЮ операцию?
Это только стас не врубается в существо дел.
...
Рейтинг: 0 / 0
28.12.2021, 14:19
    #40123618
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защита от CSRF через токены.
questioner
Кажется суть в том, что мы по сути в куках имеем только JSessionId.
это первый уровень. Его обходит сабж.
questioner
Само запоминание токена происходит на стороне сервера. А бэкенд ждёт токен в конкретном поле. У злоумышленника нет возможности достать ничего из сессии. Таким образом он не может достать из сессии значение этого токена.
ты про соль слышал?
Достаточно серверу и клиенту работать с солью и не твоего хака по сабжу.
...
Рейтинг: 0 / 0
28.12.2021, 14:27
    #40123619
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защита от CSRF через токены.
questioner,
Юз кейс
- вы авторизовались у банкомата бесконтактно
- отошли затушить сигарету
Вопрос - сможет кто рядом перевести деньги?
Юз кейс2
- вы авторизовались в сберклиент
- на соседней вкладке стоит сосед хакер
Вопрос - сможет хакер перевести деньги?
...
Рейтинг: 0 / 0
28.12.2021, 14:29
    #40123620
защита от CSRF через токены.
mayton
Наиболее важные действия банк проводит через многофакторку. Если хакер даже проломит первый
уровень защит - на следующем ему надо будет получить СМС из твоего телефона или 6 цифр токен-генератора
опять-же из твоего телефона которые меняются каждые 30 секунд.
Да причем тут MFA. Надо сначала все-таки прочесть что такое CSRF. Клиент уже залогинен в банке. И из-за того что он залогинен, если мы сумеем послать запрос с другого сайта из браузера пользователя - то банк не сможет отличить обычный пользовательский запрос со страницы банка и этот запрос злоумышленника. И теперь злоумышленник может что-то поменять от лица пользователя.

И решаются эти проблемы в частности с помощью CORS и csrf_token'ов.
...
Рейтинг: 0 / 0
28.12.2021, 14:35
    #40123623
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защита от CSRF через токены.
Stanislav Bashkyrtsev
И решаются эти проблемы в частности с помощью CORS и csrf_token'ов.
только н надо надувать щеки и бросать слова в которых не рубишь. Чисто стас.
...
Рейтинг: 0 / 0
28.12.2021, 14:39
    #40123626
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защита от CSRF через токены.
Stanislav Bashkyrtsev
mayton
Наиболее важные действия банк проводит через многофакторку. Если хакер даже проломит первый
уровень защит - на следующем ему надо будет получить СМС из твоего телефона или 6 цифр токен-генератора
опять-же из твоего телефона которые меняются каждые 30 секунд.
Да причем тут MFA. Надо сначала все-таки прочесть что такое CSRF. Клиент уже залогинен в банке. И из-за того что он залогинен, если мы сумеем послать запрос с другого сайта из браузера пользователя - то банк не сможет отличить обычный пользовательский запрос со страницы банка и этот запрос злоумышленника. И теперь злоумышленник может что-то поменять от лица пользователя.

И решаются эти проблемы в частности с помощью CORS и csrf_token'ов.

Я про то что любой дурак сможет выписать тебе счет к оплате. Для этого и хакером не надо быть.

А в теме топика мы про что говорим?
...
Рейтинг: 0 / 0
28.12.2021, 14:41
    #40123627
Андрей Панфилов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защита от CSRF через токены.
PetroNotC Sharp
только н надо надувать щеки и бросать слова в которых не рубишь. Чисто стас.


Стас в первом своем ответе написал все что нужно и как работает, дальнейшего предмета осуждения нет, единственное в чем он не прав - это то, что XSRF он пишет неправильно.
...
Рейтинг: 0 / 0
28.12.2021, 14:50
    #40123631
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защита от CSRF через токены.
Андрей Панфилов,
Ты забыл про автора топика..
Как ему станет все ясно так и закончим.
Ваш капитан очевидность.
...
Рейтинг: 0 / 0
28.12.2021, 16:09
    #40123649
защита от CSRF через токены.
Андрей Панфилов
единственное в чем он не прав - это то, что XSRF он пишет неправильно.
OWASP :
OWASP CSRF attacks are also known by a number of other names, including XSRF , “Sea Surf”, Session Riding, Cross-Site Reference Forgery, and Hostile Linking. Microsoft refers to this type of attack as a One-Click attack in their threat modeling process and many places in their online documentation. Wikipedia :
WikipedieaCross-site request forgery, also known as one-click attack or session riding and abbreviated as CSRF (sometimes pronounced sea-surf[1]) or XSRF ;)
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / защита от CSRF через токены. / 25 сообщений из 94, страница 1 из 4
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]