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

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

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

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

questionerВот я ума не приложу как это помогает в описанной мной ситуации. Если токен хранится в куках, то он также опять с формой уедет в запросе. Разве нет ? В чем тоность ? что я упускаю ?Мм.. а здесь ты что-то про форму говоришь. Если речь про HTML form (что редкость на сегодняшний день), то тут хедер не сработает - потому как HTTP запрос уйдет без участия JS. В таком случае токен встраивается в hidden поле у формы. И если это наш сервер сгенерил форму, значит он смог правильный токен указать.
...
Рейтинг: 0 / 0
защита от CSRF через токены.
    #40123482
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
защита от CSRF через токены.
    #40123484
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно это легаси? Ребят UI-щики. Как щас формы лупят? JavaScript-ом вроде.
...
Рейтинг: 0 / 0
защита от CSRF через токены.
    #40123488
questioner
тут про форму пишут. Вроде как должно же работать.
Работать будет, да. Но Cookies же в этом способе не используются.
mayton
Возможно это легаси? Ребят UI-щики. Как щас формы лупят? JavaScript-ом вроде.
Счас мы обычно шлем AJAX запросы JS'ом. Form submission (как вот на этом форуме) редко можно встретить.
...
Рейтинг: 0 / 0
защита от CSRF через токены.
    #40123492
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner
Помогите плиз вспомнить про токены.
упрошённо:
Я зашёл на сайт сбера и не вышел, потом перешёл на сайт злоумышленника.
Вот есть на вражеском сайте форма, которая шлёт запрос на сайт сбера, который переводит деньги с моего счёта в банке на счёт злоумышленника. Это работает за счёт того, что при каждом запросе шлются куки. В данном случае куки сбера.

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

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


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

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

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

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

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

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


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

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


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

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

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

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

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

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


Стас в первом своем ответе написал все что нужно и как работает, дальнейшего предмета осуждения нет, единственное в чем он не прав - это то, что XSRF он пишет неправильно.
...
Рейтинг: 0 / 0
защита от CSRF через токены.
    #40123631
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов,
Ты забыл про автора топика..
Как ему станет все ясно так и закончим.
Ваш капитан очевидность.
...
Рейтинг: 0 / 0
защита от CSRF через токены.
    #40123649
Андрей Панфилов
единственное в чем он не прав - это то, что 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
25 сообщений из 94, страница 1 из 4
Форумы / Java [игнор отключен] [закрыт для гостей] / защита от CSRF через токены.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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