2015-01-08 3 views
4

Flask RESTful Destroy User Token обсуждает, как уничтожить токен флакона, однако это не мешает человеку в средней атаке. Есть ли способ аннулировать токен, чтобы он не был активен до истечения срока его действия?Destroy the Flask Restful Token

+0

Если вы не отправляете токены сеанса через зашифрованное соединение, почему бы и нет? SSL - один из способов смягчить атаки MITM (профилактика - достижимая цель). – Makoto

+0

Я отправляю их через SSL. Я использую токены для подключения приложения ios к веб-серверу. Я просто не хочу, чтобы случай, если кто-то обнаруживает токен, он все еще активен даже после выхода пользователя из системы. –

ответ

3

Метки, указанные в вопросе, на который вы ссылались, создаются путем добавления криптографической подписи к некоторым данным. Обычно данные, хранящиеся в токене, включают в себя владельца маркера (например, идентификатор пользователя) и могут также включать дату истечения срока действия.

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

Недостатком этого подхода является то, что нет простого способа отменить токен, потому что токены нигде не хранятся. Чтобы расширить этот механизм, чтобы разрешить аннулирование, вы можете добавить таблицу базы данных, в которой хранятся отозванные маркеры. Затем во время проверки маркера вы не только декодируете токен, но также удостоверяетесь, что токен не находится в вашем отозванном списке.

Другой, совершенно другой подход заключается в том, чтобы не использовать подписанные токены. Просто сделайте токен случайным UUID и сохраните его в таблице пользователя для каждого пользователя. Если вы его индексируете, то когда клиент отправляет токен, вы можете найти пользователя с поиском в базе данных. И тогда аннулирование токена выполняется просто, очищая поле маркера для пользователя.

Надеюсь, это поможет!

+0

Спасибо, Мигель, который отлично подходит ко мне. Использует токен, а затем делает его недействительным таким образом, чтобы защитить пользователя от входа в веб-приложение api через мобильное устройство, а также сохранить его в ios keychain? –

+0

@AdilAnsari: это безопасно, насколько устройство безопасно. Большинство приложений не отменяют токены, насколько я знаю, это мера, которую вы резервируете, когда узнаете о нарушении. Вам действительно нужно найти баланс, вам нужна безопасность, но для большинства приложений вы не хотите, чтобы ваши пользователи предоставляли учетные данные каждый раз, когда они хотят использовать ваше приложение. Для банковского приложения это имело бы смысл, но для чего-то менее важного, что, возможно, нет. – Miguel

 Смежные вопросы

  • Нет связанных вопросов^_^