Хранение паролей для внешних API - лучшая практика

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

Readi это в Говорящий с Пиратами .

5
задан Lance Pollard 13 December 2009 в 21:17
поделиться

5 ответов

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

Но зачем это вообще? Facebook Connect, Twitter и Google с помощью OAuth вам вообще не нужно хранить пароли пользователей. В какой-то момент срок действия файлов cookie пользователя истечет (или они попытаются получить доступ к вашему сайту с другого компьютера), и им придется пройти повторную аутентификацию. Вы не можете предотвратить повторную аутентификацию - вместо этого вы должны максимально упростить ее обработку для конечного пользователя.

6
ответ дан 18 December 2019 в 11:57
поделиться

Безопасность

Я предполагаю, что вашему приложению необходимо знать пароль в виде открытого текста. Тогда нет никакого способа сохранить его каким-либо простым способом.

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

Хранение

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

  • Один файл для каждого пользователя, поэтому файловая система, а не ruby, должна искать данные.
  • Создайте много подкаталогов. Производительность некоторых файловых систем снижается, если вы помещаете несколько файлов в один каталог. например. поместите файл 'abcd' в 'a / b / c / d'

. Вы можете использовать базу данных вместо файловой системы

2
ответ дан 18 December 2019 в 11:57
поделиться

Такие службы предоставляют авторизацию OpenAuth . Вам настоятельно рекомендуется взглянуть на него.

6
ответ дан 18 December 2019 в 11:57
поделиться

Вот как это работает, например, для fetcmailrc, который должен иметь chmod до 600 (чтение и запись может выполнять только его владелец). И да, он содержит простой пароль.

1
ответ дан 18 December 2019 в 11:57
поделиться

Я настоятельно рекомендую вам использовать OAuth, но если вам нужно сохранить пароли (будьте абсолютно уверены, что вам это нужно), вы можете использовать OpenSSL библиотека для шифрования паролей. Библиотека OpenSSL довольно плохо документирована в Ruby, но, насколько мне известно, они очень похожи на библиотеку C OpenSSL. Поскольку я считаю, что вам следует использовать OAuth, а не хранить пароли, я позволю вам найти документацию самостоятельно.

Однако для подхода OAuth вам стоит взглянуть на гем OAuth . Google , Twitter (для которого я рекомендую вам использовать отличный twitter gem) и facebook (у которого есть две, казалось бы, хорошие альтернативы: RFacebook и facebooker )

0
ответ дан 18 December 2019 в 11:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: