2010-10-31 4 views
7

Как только я получу свой токен доступа для сайта (скажем, facebook), используя OAuth, насколько важно хранить этот секрет? Может ли что-нибудь злонамеренное произойти, если кто-то схватит его?Насколько важно хранить секретный токен доступа OAuth?

Мне было интересно, было бы неплохо сохранить токен в cookie или сеансе.

+0

Возможно, вы не захотите хранить файлы cookie, но сеанс в порядке. Идея заключается в том, что файлы cookie считаются «пользовательскими вводами» и ненадежны (если не используются подписанные файлы cookie), что означает, что вам технически необходимо запросить свою пользовательскую базу данных, чтобы проверить, что маркер доступа действителен до его использования. Это уже сделано для идентификаторов сеансов на уровне сеанса в большинстве веб-фреймворков. –

+2

Помимо действительности, я больше беспокоюсь о безопасности. Поэтому я взял access_token, который я получил из facebook, а на другом компьютере запустил curl -F 'access_token = 162032318056 | 2.0r19NN8CJ3qiz2e0dA_G6w __. 3600.1288576800-6423201 | q7GD-dWTEvWoqEZjZ77Ga_ddhwA' -F 'message = TEST' https://graph.facebook.com/me/feed Эта команда отправила ТЕСТ на мою стену. Поэтому я беспокоюсь о том, что злоумышленник может читать куки-файлы someones, захватывать маркер доступа, который они получили с сайта, а затем запускать привилегированные команды на чужой счету facebook. Из этого теста кажется, что это возможно –

+0

Брэд, вы выяснили решение? Помимо сеанса или файла cookie, где еще его будет хранить? Сохранение его в БД каждый раз, когда пользователь входит в систему, а затем запрашивает его, кажется, как бы громоздкая идея в лучшем случае ... – Alexandra

ответ

4

Обновление: если у вас есть пользователь, подключаемый к javascript sdk, идентификаторы пользователя и токены доступа уже хранятся в файлах cookie для вашего сайта. Проверьте отправленные HTTP-файлы. Если это не так, проверьте документацию FB.Init, так как FB.Init имеет параметр boolean cookie, который вы можете установить так, чтобы он создавал для вас файл cookie с именем fbs_ {APPID}. This сообщение рассказывает об этом файле cookie.

+0

Кажется, что как только я получу access_token, мне не нужны никакие другие ключи, чтобы делать привилегированные вещи. больше, я думаю. Благодаря! –

+0

Юли, ты прав. Я обновил ответ. – bkaid

2

Да, токен доступа эквивалентен вашему имени пользователя/паролю. Большинство реализаций истекают токен доступа через некоторое время, но пока он все еще действителен, он должен храниться в секрете.

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