|
|
|
Spring Security - tokens, CSRF, JWT?
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, разбираюсь с принципами работы и как-то немного все перемешалось. Документацию читал, но в примерах каждый делает как-то по своему. Хотелось бы спросить, правильно ли я понимаю. Значитс так, сделал валидацию токенов с помощью JWT? Например как написано здесь.. https://habrahabr.ru/post/278411/ или здесь https://sdqali.in/blog/2016/07/07/jwt-authentication-with-spring-web---part-4/ Приблизительно, какие преимущества мне это дает понимаю. Но возник вопрос. 1. Если jwt токен не хранится в cookies, то где? Ведь мы логинимся, получаем токен, например говорим - этот токен будет жить 1 неделю. А где он хранится чтоб пользователь на сл день включил комп, браузер и с этим токеном работает дальше без повторной авторизации? Вот это как-то непонятно.. 2. Получается что, если используется jwt, то на стороне спринга можно отключить CSRF - верно? 3. Где и как генерировать sekret.key? Например здесь и здесь? http://kjur.github.io/jsjws/tool_jwt.html http://jwtbuilder.jamiekurtz.com/ Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2017, 11:08 |
|
||
|
Spring Security - tokens, CSRF, JWT?
|
|||
|---|---|---|---|
|
#18+
_webdev_1. Если jwt токен не хранится в cookies, то где?В hidden-поле_webdev_Ведь мы логинимся, получаем токен, например говорим - этот токен будет жить 1 неделю. А где он хранится чтоб пользователь на сл день включил комп, браузер и с этим токеном работает дальше без повторной авторизации? Вот это как-то непонятно..- Страница осталась открытой (сохранена и восстановлена браузером при открытии) - В составе URL (токен в GET-запросе) По части безопасности: https://ru.wikipedia.org/wiki/Межсайтовая_подделка_запроса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2017, 21:03 |
|
||
|
Spring Security - tokens, CSRF, JWT?
|
|||
|---|---|---|---|
|
#18+
UsmanВ hidden-поле - а как, если фронт отдельно от бекенда? Сервер только для обработки данных. и с фронтом не связан никак. Usman- Страница осталась открытой (сохранена и восстановлена браузером при открытии) - В составе URL (токен в GET-запросе) - в моем понятии это уже какие-то грабли. Токен должен передаваться в хедере. Во всех примерах так и делается.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2017, 22:41 |
|
||
|
Spring Security - tokens, CSRF, JWT?
|
|||
|---|---|---|---|
|
#18+
_webdev_- а как, если фронт отдельно от бекенда? Сервер только для обработки данных. и с фронтом не связан никак.Фронт обязательно свяжется с бэком, например, в процессе аутентификации/авторизации._webdev_в моем понятии это уже какие-то грабли.Перечислил некоторые варианты передачи. В любом случае клиент получит токен. Самое важное - безопасность._webdev_Токен должен передаваться в хедере.Без проблем, еще один вариант (:_webdev_Ведь мы логинимся, получаем токен, например говорим - этот токен будет жить 1 неделю .И с этим токеном можно "гулять" по всему сайту? Долгоживущие токены - не безопасны, особенно в том случае, если сайт содержит важную информацию (документы, или даже обработка платежей и пр.) Посмотрите также в сторону https://ru.wikipedia.org/wiki/OAuth. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2017, 23:13 |
|
||
|
Spring Security - tokens, CSRF, JWT?
|
|||
|---|---|---|---|
|
#18+
UsmanФронт обязательно свяжется с бэком, например, в процессе аутентификации/авторизации. - да, это я понимаю. Просто Начитался о jwt - думаю трендово. )) Еще в самом начале задавался вопросом, этим. У меня нет ни 150 микросервисов, для которых такой токен - это наверняка хорошо, с таким же успехом можно пользоваться кукисами и сохраниемым там JSESSIONID. Тогда в данном случае если есть 1 сервер и 1 клиент JWT не дает мне никаких преимуществ... UsmanПеречислил некоторые варианты передачи. В любом случае клиент получит токен. Самое важное - безопасность. - ну так передавать как параметр или как хедер, нужно же где-то его хранить. Не вариант - закріть вкладку и снова логиниться... UsmanИ с этим токеном можно "гулять" по всему сайту? Долгоживущие токены - не безопасны, особенно в том случае, если сайт содержит важную информацию (документы, или даже обработка платежей и пр.) - да о этом уже тоже начитался.. UsmanПосмотрите также в сторону https://ru.wikipedia.org/wiki/OAuth. - дык ведь нужно делать или свой сервер или пользоваться чужим, а они не бесплатные... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2017, 23:33 |
|
||
|
Spring Security - tokens, CSRF, JWT?
|
|||
|---|---|---|---|
|
#18+
_webdev_Тогда в данном случае если есть 1 сервер и 1 клиент JWT не дает мне никаких преимуществ... верно. Никаких. Даже есл 10 сервисов но на одном домене тоже никаких. Т.к. куки в одном домене видны. Итак, вам по ТЗ нужна аутентификация form сделанная самим App сервером без спринга или в спринге из коробки она же самая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2017, 00:42 |
|
||
|
Spring Security - tokens, CSRF, JWT?
|
|||
|---|---|---|---|
|
#18+
Petro123аутентификация form рядом тема: "Авторизация на сайте" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2017, 00:52 |
|
||
|
Spring Security - tokens, CSRF, JWT?
|
|||
|---|---|---|---|
|
#18+
Petro123Итак, вам по ТЗ нужна аутентификация form сделанная самим App сервером без спринга или в спринге из коробки она же самая. - к этому проекту у меня ТЗ нет, просто хочется сделать как лучше, вот и загорелся, попробовал, а потом проанализировал и понял, что ничего мне это не дает. Делаю все на спринге, бекенд+Ангуляр потом скорее всего, так что, сервер просто обрабатывает запросы. Petro123рядом тема: "Авторизация на сайте" - пасиб, сейчас гляну. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2017, 09:27 |
|
||
|
Spring Security - tokens, CSRF, JWT?
|
|||
|---|---|---|---|
|
#18+
_webdev_, Токен можно хранить в куках или даже в Storage. JWT вроде в тренде сейчас, но сама идея довольно проста, соответсвенно ничего революционно нового в ней нет. На первый взгляд кажется, что преимущества JWT не очевидны(для НЕ REST JWT не нужен вовсе). Представьте, что у вас высоконагруженный бекэнд REST и к нему обращаются мильен консьюмеров. Токен хранит информацию о клиенте внутри, соответственно вам не нужно лезть в БД на каждый чих (т.е. вместо двух запросов: авторизация + запрос данных у вас всего лишт один). Как уже заметили, токен не должен жить слишком долго. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2017, 18:15 |
|
||
|
Spring Security - tokens, CSRF, JWT?
|
|||
|---|---|---|---|
|
#18+
mephПредставьте, что у вас высоконагруженный бекэнд REST и к нему обращаются мильен консьюмеров. Токен хранит информацию о клиенте внутри, соответственно вам не нужно лезть в БД на каждый чих (т.е. вместо двух запросов: авторизация + запрос данных у вас всего лишт один). Как уже заметили, токен не должен жить слишком долго. - Представить могу, но такого не ожидается... Немного не понял про БД. Если делать обычные токены, то можно выставить срок действия например 2 часа и все. Хранить или в менеджере сессий или в кеше.. Я немного не понимаю, - зачем БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2017, 00:42 |
|
||
|
Spring Security - tokens, CSRF, JWT?
|
|||
|---|---|---|---|
|
#18+
_webdev_mephПредставьте, что у вас высоконагруженный бекэнд REST и к нему обращаются мильен консьюмеров. Токен хранит информацию о клиенте внутри, соответственно вам не нужно лезть в БД на каждый чих (т.е. вместо двух запросов: авторизация + запрос данных у вас всего лишт один). Как уже заметили, токен не должен жить слишком долго. - Представить могу, но такого не ожидается... Немного не понял про БД. Если делать обычные токены, то можно выставить срок действия например 2 часа и все. Хранить или в менеджере сессий или в кеше.. Я немного не понимаю, - зачем БД? когда у тебя N+ страниц и мильон юзеров и m ролей, держать в памяти кто к чему имеет доступ — слишком накладно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2017, 05:42 |
|
||
|
Spring Security - tokens, CSRF, JWT?
|
|||
|---|---|---|---|
|
#18+
_webdev_Я немного не понимаю, - зачем БД при первом входе и создании сессии проверить пароль в БД (хеш) и узнать кто входит. Если список юзверей в БД, туда и лезут. Что тут непонятного? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2017, 09:37 |
|
||
|
Spring Security - tokens, CSRF, JWT?
|
|||
|---|---|---|---|
|
#18+
вадякогда у тебя N+ страниц и мильон юзеров и m ролей, держать в памяти кто к чему имеет доступ — слишком накладно - возможно. Прошу прощения, у меня просто моя идея в голове, и там не будет столько ролей и пользователей. Просто страничка, после логина человек получает определенный функционалитет... Petro123при первом входе и создании сессии проверить пароль в БД (хеш) и узнать кто входит. Если список юзверей в БД, туда и лезут. Что тут непонятного? - я думаю, мы немного не поняли друг-друга. При первом входе да, естественно, а если пользователь уже получил сессию, то незачем же... Я подумал, что в ответе имелось в виду, что с каждым запросом нужно будет лезть в БД. Там не было указано, что только с первым.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2017, 22:04 |
|
||
|
Spring Security - tokens, CSRF, JWT?
|
|||
|---|---|---|---|
|
#18+
_webdev_, да. Итого вам первый метод - базовая. Но там окошечко от ослика - смешное. И шифрования нет. Остался метод - form. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2017, 22:35 |
|
||
|
Spring Security - tokens, CSRF, JWT?
|
|||
|---|---|---|---|
|
#18+
Petro123Итого вам первый метод - базовая. Но там окошечко от ослика - смешное. И шифрования нет.))))) Вы не поверите, перечитал Ваш ответ 3 раза не понял, на что Вы ответили.. ))) О каком первом методе речь? Вы о просто JSESSIONID? Окошечко, ослик? ))) Не могу найти параллели. Зачем метод - form? Ведь смысл был залогиниться, получить токен и слать нужные запросы к серверу с этим токеном. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2017, 23:37 |
|
||
|
Spring Security - tokens, CSRF, JWT?
|
|||
|---|---|---|---|
|
#18+
_webdev_, ))) Значит ты потерял контекст беседы. Весь топик ты решал что делать с токеном. Вроде убедился что токены тебе не нужны. У тебя проще проект. Значит идём от простого к сложному. Всего методов аутентификации 1,2,3 и обчёлся. Первый - BASE (гугл) Второй - FORM (гугл) авторВедь смысл был залогиниться, получить токен и слать нужные запросы к серверу с этим токеном. работать будет, но это оверхед. Токены применяют при SSO. ...... Какое слово не понятно? )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2017, 23:56 |
|
||
|
Spring Security - tokens, CSRF, JWT?
|
|||
|---|---|---|---|
|
#18+
_webdev_Тогда в данном случае если есть 1 сервер и 1 клиент JWT не дает мне никаких преимуществ... ты писал? Делай токен, но он тебе ничего особо не даёт. Ещё я тебе давал ссылку на тему рядом. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2017, 23:59 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39428190&tid=2123026]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
85ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 445ms |

| 0 / 0 |
