0

ユーザー情報を格納する User というクラスがあります。アカウントの作成中に保存される 1 つのフィールド (それ以外の場合はクラスに保存されません) は、ハッシュ化されたパスワードです。

ユーザーが POST でアカウントを作成すると、パスワードは from を介して別のページに渡され、MYSQL データ挿入などで処理されます。

私の質問は、生の$_POST['password']フィールドをクラスに渡してクラス内でハッシュする必要がありますか、それとも外部でパスワードをハッシュし、ハッシュをクラスに渡して保存する必要がありますか?

どちらの方向にも私を揺さぶる本当のプラスまたはマイナスは見えません。DB からパスワード ハッシュを呼び出してユーザー クラス内で使用することは決してありません (ログイン検証にユーザー クラスを使用しません)。

4

3 に答える 3

3

HTTPS 接続も使用するかどうかによって異なります。もしそうなら、あなたのパスワードをあなたのコードにハッシュすることができます。Javascript でパスワードをハッシュするには、いくつかのコードが必要です (MD5 または SHA1 で直接ハッシュする関数がないため)

Zsoltが言ったように、それをクラスにハッシュすると、ソルトメカニズムを使用できます。

于 2013-05-17T13:08:52.117 に答える
2

クラスの平文パスワードを渡すセキュリティ上の懸念はありません。重要なのは、永久に保存する前にハッシュすることだけです。(覚えておいてください: セッション データはディスクに保存されるため、セッションへの保存は永続的です。) クラスとそのすべてのデータは、プレーンテキスト パスワードを入力したユーザーに対してのみ存在します。

クラス内で行うことをお勧めします。これにより、ソルティングやその他のメカニズムを中央の場所に追加できます。

登録の進行中にパスワードの他のチェックを行うことに注意してください: 最小長、許可された文字など。したがって、ハッシュはこれらすべての後に発生する必要があります。CONtroller と Model の両方を有効にしてさらにチェックを追加できるようにしたいので、可能な限り最新の場所でハッシュを行う必要があります: $user->save() または使用されている場合は ORM クラスのいずれかです。

よろしくお願いします。

于 2013-05-17T13:05:19.043 に答える