169 похожих чатов

А теперь сравним подходы: С одной стороны старый добрый проверенный подход,

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

С другой стороны - подход с JWT токенами, в котором проблема может вылезти где угодно (1. утечка jwt токена; 2. переиспользование ссылки сброса пароля с действующим jwt; 3. использование jwt токена как токена для сессии; и это варианты, которые первыми пришли в голову за 10 минут). Где из преимуществ только отсутствие еще одной таблицы в БД.

Как думаешь, какой вариант выберет безопасник?)

27 ответов

102 просмотра

Так ставишь время жизни аксеса 1 мин и норм

А если вместо токена будет скуля? Тогда жвт будет лучше, так как токен жвт в файле, а не в базе (обычно)

Artsem-Kadushko Автор вопроса
ciplenok
Так ставишь время жизни аксеса 1 мин и норм

Usability становится не оч. Мне приходит линк, пока я открою почту, пока найду письмо в спаме, пока по нему кликну + потенциальные задержки на стороне отправки письма

53338900644
А если вместо токена будет скуля? Тогда жвт будет ...

тебе чтобы воткнуть в токен скулю, для начала нужно приватный ключ найти

akhmed
тебе чтобы воткнуть в токен скулю, для начала нужн...

Я не про модификацию жвт, я про обычный токен, который хранится в базе и при клике потом удаляется

Artsem-Kadushko Автор вопроса
ciplenok
А в чем тут проблема с безой?

Тебе бизнес скажет "нет"

Artsem Kadushko
Тебе бизнес скажет "нет"

Это как-то связано с жизнью токена? Мы сейсас в целом про jwt или про сброс пароля?

Кека
А вдруг там будет RCE?

Вот именно. Если бы да кабы да во рту росли грибы 🤓

Я так и не понял, про какую утечку jwt токена ты говоришь. Да и почти все проблемы, которые ты сказал, связаны с неправильной реализацией работы с jwt токеном

akhmed
Я так и не понял, про какую утечку jwt токена ты г...

JWT генерируется через секретный ключ бекенда, как и любой криптоспособ

Кека
JWT генерируется через секретный ключ бекенда, как...

Ну если ты украл секреты, то тут проблема не с jwt

ciplenok
Ну если ты украл секреты, то тут проблема не с jwt

Кража секретов считают как вектор атаки тоже

ciplenok
Да, но это не проблема с jwt

Это проблема любого криптоспособа vs БД

Кека
JWT генерируется через секретный ключ бекенда, как...

Чтобы произошла утечка, нужно взломать бэк, либо брутить. Я как-то брутил jwt, было очень весело. С использованием 9 очень мощных карт, ключ из 10 символов с верхним, нижним регистором спец символами и цифрами - уходило пару лет. А ключ на бэке состоял из 16 символов. + хэшкат больше 10 символов не умеет брутить jwt.

Кека
Это проблема любого криптоспособа vs БД

Ну либо ключи хранят в файликe .env рядом

akhmed
Чтобы произошла утечка, нужно взломать бэк, либо б...

Брут понятно что невозможен, если секрет не 1234. в этом и весь смысл криптографии.

Artsem-Kadushko Автор вопроса
akhmed
Я так и не понял, про какую утечку jwt токена ты г...

https://example.com/passwordRecover?key=JWT_KEY Подобный запрос логгируется 1) В браузере пользователя 2) На серверной стороне всякими nginx'ами etc.

Artsem-Kadushko Автор вопроса
ciplenok
Это как-то связано с жизнью токена? Мы сейсас в це...

Про jwt в сбросе пароля. Имхо, использование JWT в приложении нормальная тема, но разрабы все равно допускают некоторые неточности: - хранение токена в localStorage - хранение слишком большой информации в токене - путают refresh токены с access токенами - etc

Artsem Kadushko
https://example.com/passwordRecover?key=JWT_KEY П...

у меня задача была подтвердить почту, а не сбросить пароль ( до сброса пароля я ещё не дошёл 😂 )

Artsem Kadushko
https://example.com/passwordRecover?key=JWT_KEY П...

Так останется любой токен, а не только JWT

Artsem-Kadushko Автор вопроса
Кека
Так останется любой токен, а не только JWT

Только JWT будет жить, пока он не станет expired. А в нормальной реализации на бекенде обычный токен сразу инвалидируетс я

Кека
Так останется любой токен, а не только JWT

тут суть в том, что любой другой токен инвалидировать можно

Artsem Kadushko
Только JWT будет жить, пока он не станет expired. ...

У JWT есть экспаеры, это его главная фича

Artsem-Kadushko Автор вопроса
akhmed
у меня задача была подтвердить почту, а не сбросит...

Уф, прошу прощения, зря быканул получается

Похожие вопросы

Обсуждают сегодня

Коллеги, я тут для личных нужд пошел ставить MQTT сервер, пощупал mosquitto, но ужаснулся отсутствию такой банальности, как HTTP API для посмотреть список топиков. А тут что,...
Maksim Lapshin
13
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
#include <stdio.h> #include <stdlib.h> #include <time.h> void mass_first_generate(int mass[5][7]) {     for (int N = 0; N < 5; N++) {         for (int A = 0; A < 7; A++) {   ...
Чувак
6
Всем привет! Решаю 99 OCaml Problems и столкнулся со следующей проблемой (прошу палками не забивать, я OCaml практически не трогал до этого момента): open OUnit2 let create_...
К|/|pи/\/\ 6е3yглbIи
2
https://www.linkedin.com/posts/ugama-benedicta-kelechi-codergirl-103041300_mobiledevelopment-fluttertraining-handsonlearning-activity-7263445699227254784-IdHB?utm_source=share...
CoderGirl
16
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
возможно ли как-то передать в электрон или таури медиа поток с рендера 2д движка? двиг запускается как dll, а дальше надо как-то отправлять рендер кодировать не подходит, зр...
Kyle Nekto
7
Точно, оно. У тебя там имена потоков выставляются?
Александр (Rouse_) Багель
11
Помогите пожалуйста. Делаю систему плагинов. Проблема сейчас в такая: плагины загружаются в основном потоке. FLibHandle := SafeLoadLibrary(FFileName) Но нужно еще выполнить фу...
Илья 🤣
10
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
12
Карта сайта