Railsプロジェクトのデータベースを公開してダウンロードできるようにする予定です。このデータベースには、crypted_passwordフィールドとpassword_saltフィールドを持つAuthlogicユーザーテーブルが含まれています。これらのパスワードはどの程度安全に保存されていますか...この方法で公開しても安全ですか?または、データベースにパスワードを保存しないOpenIDなどの別の認証システムの実装を検討する必要がありますか?
4 に答える
セキュリティと暗号化のレベルに関係なく、これを共有することは絶対にお勧めできません。たとえそれが完全に安全だったとしても、少なくともユーザー データを公開することになります。これは、ユーザーが満足する可能性が高いとは思えません。そして、それが完全に安全でない場合はどうなるでしょうか (はるかに可能性が高いです) -- たとえば、まだ発見されていない authlogic の重大な弱点があるとしますか?
転ばぬ先の杖。必要に応じて残りを共有しますが、users テーブルと関連データは公開しないでください。
共有を計画しているデータベースから、ユーザー認証 (電子メール、パスワード、salt とキー、open id の URL) に関連するフィールドを削除することをお勧めします。
ハッシュ化されたパスワードを共有することは間違いなく安全ではありません。ユーザーモデルを、認証に使用できるUserProfile(ユーザーの公開情報-ニックネーム、場所など)やUserAccountなどに分割してみてください。そうすれば、おそらくアカウント以外のすべてを共有できます。または、データベース全体を公開する代わりに、他の人がサイトからデータをプルするために使用できるある種のAPIを実装することを検討してください。
公開するデータベースには、使用する認証システムに関係なく、user テーブルを含めない方が賢明だと思います。authlogic を使用する利点の 1 つは、認証を非常に簡単に行うための複数の手段を実装できることです。従来の登録、OAuth、OpenID、または RPX を使用するかどうかは問題ではありません。これらの方法はすべて、パスワード以外の個人情報をユーザー モデルに取り込むことができます。ユーザーは、生年月日/姓名/場所の情報が公開されることにも満足しないでしょう。