Безопасный вход через Twitter oAuth - лучшая практика - PullRequest
1 голос
/ 28 июля 2010

Я новичок в oAuth и собираюсь создать веб-приложение для аутентификации с помощью Twitter (oAuth).Там не будет никакого другого метода входа в систему, кроме как через Twitters oAuth.Я ищу советы по наилучшей практике для защиты сайта на основе токенов.Вот мой план:

  • Пользователь взят с моего сайта для аутентификации через сайт Twitters
  • Создать токен доступа для пользователя
  • Получить уникальный идентификатор пользователя Twitter через TwitterAPI
  • Выполните поиск пользователя в локальной базе данных с этим идентификатором и найдите маркер доступа, если он доступен.
  • Если пользователя нет, создайте новую строку в таблице пользователей и сохраните ее для пользователя.Если пользователь найден, обновите токен доступа снова в записи пользователя.
  • Если пользователь найден, md5_salt twitterid и установите его как cookie.
  • Если пользователь повторно посещает, ищите пользователя на основеcookie

Похоже ли это на безопасный подход или использование md5 twitter id - плохая идея?

Оцените любые комментарии.

1 Ответ

0 голосов
/ 05 августа 2010

Не зная точно, что делает ваше клиентское / потребительское приложение, трудно сказать, будет ли этот подход «безопасным».

Одна проблема, которую я вижу, состоит в том, что, как только у вас есть токен доступа из твиттеракак вы идентифицируете своего пользователя, если cookie удаляется?Или вам нужно, чтобы они получили новый токен доступа?Это будет означать, что им придется каждый раз входить в систему и авторизовать ваше приложение.

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

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

Чтобы обеспечить безопасность как клиентского (потребительского) приложения, так и серверного (провайдерского) приложения, необходимо подтвердить личность своих пользователей.Самый простой способ сделать это - использовать имя пользователя и пароль, которые хранятся в вашей голове пользователя, а не где-то в файле ...

...