Правильный способ безопасного хранения токена / секретного / и т. Д. От OAuth? - PullRequest
14 голосов
/ 04 мая 2010

Я только начал изучать OAuth, и это выглядит очень хорошо. У меня oauth с твиттером, работающим в рубине прямо сейчас.

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

  • Что мне хранить?
  • Где мне его хранить?

В этом примере twitter-oauth-with-rails приложение сохраняет user.id в сеансе, а в таблице пользователей есть token и secret. Но кажется, что было бы действительно легко взломать и получить секрет, просто передав множество тестовых идентификаторов пользователей, не так ли?

Ответы [ 2 ]

6 голосов
/ 04 мая 2010

Токены бесполезны без ключа / секрета вашего приложения Twitter, поскольку они не одинаковы для каждого приложения, но зависят от ключа / секрета пользователя.

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

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

Обновление: я не уверен, правильно ли я понимаю, что вы имеете в виду, имея доступ к токенам из базы данных, угадывая идентификатор.

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

1 голос
/ 04 мая 2010

Если вы разрабатываете веб-приложение, вы можете добавить поле hidden в форму, которую отправляет пользователь, с некоторым хеш-подобным значением, вычисленным с помощью user.id, чтобы злые парни не могли изменить это значение и просто «угадать» для токена доступа

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...