0

サイトのセキュリティ:ユーザーは新しくログインするか、パスワードがCookieから取得されてログインします(または、Cookieのパスワードが無効な場合は拒否されます)。+ログインに何度も失敗すると、拒否されます。

パスワードはmd5でハッシュされ、乱数でソルトされます。

私の質問は、これは不適切ですか?

完全に安全ではないことを理解しています。誰かがユーザーのCookieにアクセスし、ハッシュされたCookieを解読して、そのユーザーのパスワードを知る可能性があります。

しかし、それは適度に安全であり、プレーンテキストのパスワードをどこにでも保存することは非倫理的であるという意味で、どういうわけか非倫理的ですか?

4

1 に答える 1

6

これは悲惨です。

これを行う正しい(または少なくともはるかに優れた)方法は、推測できないほど長くランダムなサーバー側トークンを作成し、ユーザーがログインしたときにCookieを送信することです。サーバーがCookieを受信したら、次のチェックを行います。リストに対するトークンを照合して、一致するかどうかを確認し、一致する場合は、ユーザーが検証済みであると見なします。

いくつかの雑記:

  • 時々そのトークンをリセットして、ユーザーのCookieをコピーする誰かがあなたのサイトに無期限にアクセスできないようにすることができます。たとえば、トークンが1週間より古い場合は、新しいトークンを生成してクライアントに送信し、古いものをサーバー側で期限切れにします。
  • トークンサーバー側は、認証メカニズムと見なされるため、ユーザー名とパスワードと同じセキュリティで扱います。誰もがアクセスできるテーブルやファイルに貼り付けるだけではいけません。
  • 破壊的または機密性の高いトランザクションの場合は、ユーザー名とパスワードを使用してユーザーに再検証を強制するようにしてください。たとえば、ユーザーがパスワードを変更したい場合、パスワード回復メカニズムとして電子メールを使用していて、電子メールアドレスを変更したい場合、またはアカウントを削除したい場合などは、次のように入力します。トークンが存在する場合でも、そのためのユーザー名とパスワード。

その他のヒントやベストプラクティスについては、 OWASPサイトを確認することをお勧めしますが、ハッシュ化、エンコードなど、クライアントにパスワードを送信しないでください。

于 2012-07-09T20:23:03.690 に答える