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 回答