Твиттер OAuth-хранилище токенов без базы данных пользователей? - PullRequest
2 голосов
/ 14 августа 2011

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

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

Вот что я думаю пока:

  • Пользователь проходит процесс, пока у меня не будет его ключа доступа и секрета
  • Я шифрую значения и сохраняю их в файле cookie для последующего получения

Однако, несколько вопросов / проблем:

  • Что (если вообще что-то) мешает кому-либо выдавать себя за пользователя с помощью куки?
  • Как правильно обращаться с потенциально несколькими пользователями в одном браузере? Первоначально я думал, что в моем приложении есть кнопка «Выйти», которая может уничтожить куки, но я не уверен.

Заранее благодарим за любую помощь, которую вы можете оказать!

Ответы [ 2 ]

0 голосов
/ 18 августа 2011

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

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

Вы также можете указать дату истечения срока действия куки. Возможно, держите это несколько дней или недель.

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

0 голосов
/ 15 августа 2011

Я не знаю много об OAuth, так как я не использую его, но один способ, которым вы можете управлять несколькими пользователями в одном браузере, это использовать какую-то функцию таймера. Каждый раз, когда пользователь подключается к вашей странице, cookie получает отметку «Действителен до», например, теперь + 30 минут. Если срок действия истек до истечения времени, приложение попросит пользователя повторно подтвердить свою подлинность.

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

Более безопасный способ - использовать сессии. Например, вы можете установить файл cookie, в котором содержится идентификатор сеанса, а затем установить значения «до» в сеансе.

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

...