4

数日前に自分の yii2 アプリケーションをスキャンしたところ、ログイン フォームのユーザー名とパスワードが暗号化されずに投稿されていることに気付きました。ユーザー名とパスワードをより安全にするにはどうすればよいですか?\yii\helpers\Security::encrypt($data, $secretKey)データが暗号化され、同様に復号化できることはわかっています。しかし、ログインフォームのようなビューでそれを使用する方法は?

これは私のログインフォームです

    <?php $form = ActiveForm::begin(['id' => 'login-form']); ?>
    <?= $form->field($model, 'username') ?>
    <?= $form->field($model, 'password')->passwordInput() ?>
    <div class="form-group">
    <?= Html::submitButton('Login', ['class' => 'btn btn-info']) ?>
    </div>
    <?php ActiveForm::end(); ?>

ここでユーザーが入力したデータの暗号化を処理する方法は?

4

1 に答える 1

2

Sisko78がコメントで主張しているように、クライアント側でパスワードをハッシュすることは、セキュリティの観点からはあまり役に立ちませんが、多くの害を及ぼす可能性があります (誰かがブラウザで Javascript をまったく無効にすると、彼らは一般的に台無しになります。サーバーは、ハッシュされていないデータを正しく処理できません)。

私はこの問題について非常によく似た質問をしましたが、この素晴らしい答えが返ってきました。一般に:

攻撃者の立場からすると、プレーン テキストのパスワードを送信するか、MD5 ハッシュを送信するか、どちらを送信しても大した違いはありません (...)

この回答には、MD5ハッシュへの参照が含まれています。これは、特にこれを求めたからです。しかし、MD5 が現在非常に安全でないものとして扱われているという事実とは何の関係もありません。あなたの(私の)質問に関しては、あらゆる種類のクライアント側のパスワードハッシュを使用することは、パスワードをまったくハッシュしないのと同じくらい安全ではありません。本当に安全な唯一のオプションは、HTTPS プロトコルを使用することです。アーメン。

于 2015-04-27T08:50:10.953 に答える