我几天前扫描过我的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(); ?>
如何在此处理用户输入数据的加密?
答案 0 :(得分:2)
正如 Sisko78 在其评论中声称的那样,客户端上的散列密码在安全性方面不会提供太多帮助,但会造成很大的伤害(如果有人在他们的浏览器,它们通常是搞砸的,因为您的服务器无法正确处理未散列的数据。)
关于此事,我有asked very similar question并获得了this great answer。一般来说:
从攻击者的角度来看,无论您是发送纯文本密码还是MD5哈希,或者它没有太大区别(...)
这个答案包括对MD5哈希的引用,因为我特意提到了这一点。但是,它与MD5现在被视为非常不安全的事实没有任何关系。就你的(我的)问题而言,使用任何类型的客户端密码都不像没有哈希密码一样不安全。 唯一真正安全的选择是使用HTTPS协议。阿门。