私はDjango 1.9プロジェクトに取り組んでおり、一部のユーザーが一連のユーザーとそのパスワードのリストを含むページを印刷できるように要求されています。 もちろん、パスワードは暗号化されており、これを行うためのすぐれた方法はありません。 これはセキュリティ違反を意味するので、私の質問は矛盾しますが、ソフトウェアの巨大なセキュリティ違反を暗示するものではありません。djangoで最も安全な方法でユーザーパスワードを公開するにはどうすればいいですか?
答えて
いいえ、ソフトウェアの巨大なセキュリティ侵害を意味するわけではありませんが、論理的な方法はありません。
パスワードが正しく保存されている(塩漬けされてハッシュされている)場合、データベースに無制限にアクセスできるサイト管理者であっても、パスワードがプレーンテキストであることを知ることはできません。
この不合理な要求に対しては、プッシュバックする必要があります。機能している "パスワードリセット"機能を使用している場合、ユーザー以外のユーザーはユーザーのパスワードを知る必要はありません。 信頼できる「パスワードリセット」機能がない場合は、この方向の会話と開発の作業を試してください。実際のビジネスでは、ユーザーのパスワードを知っている/印刷することはめったにありません。このような種類の機能要求は、認証と承認の実装の詳細について誤解している(または理解していない)
ハッシュ関数を使用するだけでは不十分で、単に塩を追加するだけでセキュリティを向上させることはほとんどありません。代わりに、約100msの持続時間の間、ランダムな塩でHMACを繰り返し、塩をハッシュで保存してください。 'PBKDF2'、' password_hash'、 'Bcrypt'などの関数を使用します。要点は、攻撃者が無差別にパスワードを見つけるのに多くの時間を費やすことです。 – zaph
さらに詳しい情報が必要な場合は、http://security.stackexchange.com/を試してみてください。要するに、ユーザーが設定したパスワードを決して印刷することはできません。標準の誕生日+ ID番号のような問題ではないデフォルトパスワードの場合wimは私が言いたい残りの部分をカバーします。 – MooingRawr
あなたはしないでください。この要求は意味をなさないので、違法であるはずです。 –