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

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

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

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

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

27 ответов

46 просмотров

Так ставишь время жизни аксеса 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
у меня задача была подтвердить почту, а не сбросит...

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

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

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

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Добрый день. Хочу сделать отрисовку по команде на панели. Почему-то рисуется только при втором вызове. С чем может быть связано, не подскажете? procedure TForm1.FormDblClick(...
Kirill Filippenok
20
Всем доброго дня! Подскажите может кто использовал связку Pagebuilder + Clientsetting. Сами параметры с типом pagebuilder в модуле Clientsetting работают нормально, можно такж...
Александр Добриков
12
А почему в си некоторые вещи работают с двойными кавычками некоторые с одинарными? Нельзя было все сделать с одними или чтоб работало с разными? например чтоб выводить строки ...
.
15
Всем привет! Нужен совет от опытных. Переношу свой проект с Делфи 10.2 Токио на Лазарус 3.2 установленный через инсталлятор fpcupdeluxe-x86_64-win64. При импортировании проект...
Дмитрий Завгородний
7
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Good afternoon, I just started learning php in conjunction with mysql. I am registering a system on a local Mamp server using phpMyAdmin. It seems to be stored normally in the...
ManGo
1
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Добрый день! Такая проблема возникла, написал код на Python, который компилирует, собирает и запускает файлы .s А в случае работы нужно то же самое делать для .asm Чем эти фа...
A Mori
5
Всем привет! procedure TForm1.FormCreate(Sender: TObject); type TStartEnd = record S: Byte; E: Byte; end; var a, b: TStartEnd; begin {1} a.S := 1; {2} a.E := 2; ...
Руслан Михайлович
10
Карта сайта