Подтвердить что ты не робот

Как безопасно хранить учетные данные за сеанс в Flask

У меня есть приложение Flask в локальной сети, которое подключается к почтовому серверу и веб-сервису. Все три используют один и тот же источник аутентификации LDAP, и я бы хотел, чтобы пользователи не предоставляли одинаковые учетные данные каждый раз, когда приложение подключается к одному из этих интерфейсов.

Каков наиболее безопасный способ хранения учетных данных пользователя для срока службы сеанса, чтобы они могли совместно использоваться другими интерфейсами?

Один из вариантов, который я нашел, - Flask-KVSession, в котором хранятся переменные сеанса на стороне сервера.


Обновление: при тестировании я экспериментировал с удалением учетных данных в dict в app.config, когда пользователь входит в систему. Кажется, что это должна быть плохая идея, но я пока не понял, почему. Я знаю, что это создает возможность исчезновения учетных данных для активного сеанса, но достаточно легко увидеть, существуют ли они, и запросить их снова, если они этого не сделают. Кроме того, они не будут записываться в файловую систему, как переменные в сеансах на стороне сервера.

Я хотел бы знать, не хватает ли я каких-либо очевидных проблем с этим подходом.

4b9b3361

Ответ 1

Я бы определенно использовал что-то вроде Flask-KVSession, чтобы хранить учетные данные пользователя в сеансе на стороне сервера (+1 для этого - я имел n Раньше это было расширение. Это гарантирует, что вы не передаете учетные данные пользователя в куки файлы. Я бы добавил Flask-Login, чтобы иметь дело с более интересными частями управления сеансом, не открывая все проблемы самостоятельно.

Удаление учетных данных в app.config не является хорошей идеей, потому что app.config не LocalProxy и, следовательно, не является потокобезопасным. Вам не гарантируется, что изменения, внесенные вами в app.config для одного запроса, будут не зависеть от других запросов. (Здесь вы можете узнать больше о локалях контекста здесь и здесь).