|
защита от CSRF через токены.
|
|||
---|---|---|---|
#18+
Помогите плиз вспомнить про токены. упрошённо: Я зашёл на сайт сбера и не вышел, потом перешёл на сайт злоумышленника. Вот есть на вражеском сайте форма, которая шлёт запрос на сайт сбера, который переводит деньги с моего счёта в банке на счёт злоумышленника. Это работает за счёт того, что при каждом запросе шлются куки. В данном случае куки сбера. Общеизвестно, что правильное решение это фикс проблемы через токены. Сервер генерит токен и отправляет клиенты(js, браузер) Как я понял - этот токен кладётся в сессию(вроде как те же куки, не ? ). и сервер каждый проверяет совпадает ли последний сгенерированный токен с тем, что пришёл на сервер. Вот я ума не приложу как это помогает в описанной мной ситуации. Если токен хранится в куках, то он также опять с формой уедет в запросе. Разве нет ? В чем тоность ? что я упускаю ? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2021, 22:27 |
|
защита от CSRF через токены.
|
|||
---|---|---|---|
#18+
Я думаю не сработает. Попробуй хакни сам себя. Пополни себе телефон. Скорее всего это не сработает и сообщение об ошибке как-раз будет нести в себе ответ на твой вопрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2021, 23:00 |
|
защита от CSRF через токены.
|
|||
---|---|---|---|
#18+
Если речь именно про способ с Cookies, то тут такой подход: 1. Сервер присылает токен в куках. Его вычитывает JS. Для этого нужно чтоб кука не была HTTP-only. 2. Да, кука эта будет слаться с каждым запросом. Однако серверу на это будет наплевать. Главное - чтоб JS при формировании AJAX запроса поместил это значение в отдельный HTTP Header . Именно его будет вычитывать сервер. Таким образом мы гарантируем что запрос послали именно с нашей страницы. JS на чужом сайте не сможет прочесть куку. questionerВот я ума не приложу как это помогает в описанной мной ситуации. Если токен хранится в куках, то он также опять с формой уедет в запросе. Разве нет ? В чем тоность ? что я упускаю ?Мм.. а здесь ты что-то про форму говоришь. Если речь про HTML form (что редкость на сегодняшний день), то тут хедер не сработает - потому как HTTP запрос уйдет без участия JS. В таком случае токен встраивается в hidden поле у формы. И если это наш сервер сгенерил форму, значит он смог правильный токен указать. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 00:08 |
|
защита от CSRF через токены.
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev Если речь именно про способ с Cookies, то тут такой подход: 1. Сервер присылает токен в куках. Его вычитывает JS. Для этого нужно чтоб кука не была HTTP-only. 2. Да, кука эта будет слаться с каждым запросом. Однако серверу на это будет наплевать. Главное - чтоб JS при формировании AJAX запроса поместил это значение в отдельный HTTP Header . Именно его будет вычитывать сервер. Таким образом мы гарантируем что запрос послали именно с нашей страницы. JS на чужом сайте не сможет прочесть куку. questionerВот я ума не приложу как это помогает в описанной мной ситуации. Если токен хранится в куках, то он также опять с формой уедет в запросе. Разве нет ? В чем тоность ? что я упускаю ? Ну вот spring security https://docs.spring.io/spring-security/site/docs/5.0.x/reference/html/csrf.html#csrf-include-csrf-token-form тут про форму пишут. Вроде как должно же работать. ну и опять же вспоминаются времена, что чтобы мигрировать с одной версии спринга на другую включался этот CSRF и поначалу приходилось его выключать. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 00:48 |
|
защита от CSRF через токены.
|
|||
---|---|---|---|
#18+
Возможно это легаси? Ребят UI-щики. Как щас формы лупят? JavaScript-ом вроде. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 00:59 |
|
защита от CSRF через токены.
|
|||
---|---|---|---|
#18+
questioner тут про форму пишут. Вроде как должно же работать. mayton Возможно это легаси? Ребят UI-щики. Как щас формы лупят? JavaScript-ом вроде. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 01:14 |
|
защита от CSRF через токены.
|
|||
---|---|---|---|
#18+
questioner Помогите плиз вспомнить про токены. упрошённо: Я зашёл на сайт сбера и не вышел, потом перешёл на сайт злоумышленника. Вот есть на вражеском сайте форма, которая шлёт запрос на сайт сбера, который переводит деньги с моего счёта в банке на счёт злоумышленника. Это работает за счёт того, что при каждом запросе шлются куки. В данном случае куки сбера. Общеизвестно, что правильное решение это фикс проблемы через токены. Сервер генерит токен и отправляет клиенты(js, браузер) Как я понял - этот токен кладётся в сессию(вроде как те же куки, не ? ). и сервер каждый проверяет совпадает ли последний сгенерированный токен с тем, что пришёл на сервер. Вот я ума не приложу как это помогает в описанной мной ситуации. Если токен хранится в куках, то он также опять с формой уедет в запросе. Разве нет ? В чем тоность ? что я упускаю ? Первый случай описан подробно на owasp сайте так называемая Cross Site Request Forgery (CSRF) атака https://owasp.org/www-community/attacks/csrf Токен зависит от того какой протокол Вы желаете использовать обычно пользуются OAuth 2 https://oauth.net/2/ Обычно токен хранится в сервер сессии и дохнет вместе с сессией. Если это хозяйство класть в куку, то да есть вариант взлома хотя и есть вариант взлома по сессии так же. Основной ограничитель это время сессии и токена. Часто токен может быть использован только один раз к примеру тоже хорошо работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 01:49 |
|
защита от CSRF через токены.
|
|||
---|---|---|---|
#18+
Sergunka Токен зависит от того какой протокол Вы желаете использовать обычно пользуются OAuth 2 https://oauth.net/2/ Обычно токен хранится в сервер сессии и дохнет вместе с сессией. Если это хозяйство класть в куку, то да есть вариант взлома хотя и есть вариант взлома по сессии так же. Основной ограничитель это время сессии и токена. Часто токен может быть использован только один раз к примеру тоже хорошо работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 01:54 |
|
защита от CSRF через токены.
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev Счас мы обычно шлем AJAX запросы JS'ом. Form submission (как вот на этом форуме) редко можно встретить. Переходы между страницами по урл редко используются.. Смешно. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 07:53 |
|
защита от CSRF через токены.
|
|||
---|---|---|---|
#18+
questioner Как я понял - этот токен кладётся в сессию(вроде как те же куки, не ? ). и сервер каждый проверяет совпадает ли последний сгенерированный токен с тем, что пришёл на сервер. Этот ДРУГОЙ код хакер запустить не может. Он может только свой фальшивый код отправить. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 08:10 |
|
защита от CSRF через токены.
|
|||
---|---|---|---|
#18+
PetroNotC Sharp questioner Как я понял - этот токен кладётся в сессию(вроде как те же куки, не ? ). и сервер каждый проверяет совпадает ли последний сгенерированный токен с тем, что пришёл на сервер. Этот ДРУГОЙ код хакер запустить не может. Он может только свой фальшивый код отправить. А чем эта ситуация отличается от сообщения в сабже? Ну вот зашёл я на сайт банка, посёрфил. У меня в куках лежит токен. Зашёл на сайт хакера, нажал на форму/кнопку, которая отправляет запрос на сайт банка. В куках лежит токен. Он отправляется. Где-то что-то я упускаю определенно. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 12:01 |
|
защита от CSRF через токены.
|
|||
---|---|---|---|
#18+
questioner В куках лежит токен. Он отправляется Токен в куке или в поле запроса или... Готовится НА КАЖДЫЙ ЗАПРОС. Покажи где готовит хакер куку на ЗАПРОС. Содержимое куки. Достаточно туда время записать. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 12:10 |
|
защита от CSRF через токены.
|
|||
---|---|---|---|
#18+
questioner PetroNotC Sharp пропущено... он кладется ТВОИМ кодом и с каждым запросом код другой. Этот ДРУГОЙ код хакер запустить не может. Он может только свой фальшивый код отправить. А чем эта ситуация отличается от сообщения в сабже? Ну вот зашёл я на сайт банка, посёрфил. У меня в куках лежит токен. Зашёл на сайт хакера, нажал на форму/кнопку, которая отправляет запрос на сайт банка. В куках лежит токен. Он отправляется. Где-то что-то я упускаю определенно. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 13:04 |
|
защита от CSRF через токены.
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev, Долго думал чтоб это написать?)))))) LOL ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 13:14 |
|
защита от CSRF через токены.
|
|||
---|---|---|---|
#18+
Кажется суть в том, что мы по сути в куках имеем только JSessionId. Само запоминание токена происходит на стороне сервера. А бэкенд ждёт токен в конкретном поле. У злоумышленника нет возможности достать ничего из сессии. Таким образом он не может достать из сессии значение этого токена. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 13:49 |
|
защита от CSRF через токены.
|
|||
---|---|---|---|
#18+
Наиболее важные действия банк проводит через многофакторку. Если хакер даже проломит первый уровень защит - на следующем ему надо будет получить СМС из твоего телефона или 6 цифр токен-генератора опять-же из твоего телефона которые меняются каждые 30 секунд. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 14:11 |
|
защита от CSRF через токены.
|
|||
---|---|---|---|
#18+
mayton, Верно, несколько уровней. Первый уровень - отправка сессионной куки с айди сессии это решается вторым уровнем. Второй уровень это добавить к каждому запросу секрет. Видели на банкомате без вставки карты банкомат запрашивает приложить карту на КАЖДУЮ операцию? Это только стас не врубается в существо дел. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 14:16 |
|
защита от CSRF через токены.
|
|||
---|---|---|---|
#18+
questioner Кажется суть в том, что мы по сути в куках имеем только JSessionId. questioner Само запоминание токена происходит на стороне сервера. А бэкенд ждёт токен в конкретном поле. У злоумышленника нет возможности достать ничего из сессии. Таким образом он не может достать из сессии значение этого токена. Достаточно серверу и клиенту работать с солью и не твоего хака по сабжу. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 14:19 |
|
защита от CSRF через токены.
|
|||
---|---|---|---|
#18+
questioner, Юз кейс - вы авторизовались у банкомата бесконтактно - отошли затушить сигарету Вопрос - сможет кто рядом перевести деньги? Юз кейс2 - вы авторизовались в сберклиент - на соседней вкладке стоит сосед хакер Вопрос - сможет хакер перевести деньги? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 14:27 |
|
защита от CSRF через токены.
|
|||
---|---|---|---|
#18+
mayton Наиболее важные действия банк проводит через многофакторку. Если хакер даже проломит первый уровень защит - на следующем ему надо будет получить СМС из твоего телефона или 6 цифр токен-генератора опять-же из твоего телефона которые меняются каждые 30 секунд. И решаются эти проблемы в частности с помощью CORS и csrf_token'ов. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 14:29 |
|
защита от CSRF через токены.
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev И решаются эти проблемы в частности с помощью CORS и csrf_token'ов. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 14:35 |
|
защита от CSRF через токены.
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev mayton Наиболее важные действия банк проводит через многофакторку. Если хакер даже проломит первый уровень защит - на следующем ему надо будет получить СМС из твоего телефона или 6 цифр токен-генератора опять-же из твоего телефона которые меняются каждые 30 секунд. И решаются эти проблемы в частности с помощью CORS и csrf_token'ов. Я про то что любой дурак сможет выписать тебе счет к оплате. Для этого и хакером не надо быть. А в теме топика мы про что говорим? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 14:39 |
|
защита от CSRF через токены.
|
|||
---|---|---|---|
#18+
PetroNotC Sharp только н надо надувать щеки и бросать слова в которых не рубишь. Чисто стас. Стас в первом своем ответе написал все что нужно и как работает, дальнейшего предмета осуждения нет, единственное в чем он не прав - это то, что XSRF он пишет неправильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 14:41 |
|
защита от CSRF через токены.
|
|||
---|---|---|---|
#18+
Андрей Панфилов, Ты забыл про автора топика.. Как ему станет все ясно так и закончим. Ваш капитан очевидность. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 14:50 |
|
защита от CSRF через токены.
|
|||
---|---|---|---|
#18+
Андрей Панфилов единственное в чем он не прав - это то, что XSRF он пишет неправильно. 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 ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 16:09 |
|
|
start [/forum/topic.php?fid=59&msg=40123626&tid=2120272]: |
0ms |
get settings: |
15ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
35ms |
get topic data: |
3ms |
get forum data: |
1ms |
get page messages: |
469ms |
get tp. blocked users: |
0ms |
others: | 7ms |
total: | 537ms |
0 / 0 |