Ich habe eine Login
Form in yii
, die username
und password
erfordert. Mein Problem ist, dass das Passwort ein einfacher Text ist, der Sicherheitsprobleme verursachen kann. Dazu habe ich md5
Passwort, bevor Form über AjaxWie verschlüsselt man das Passwort vor dem Post vom Login-Formular?
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'login-form',
'enableAjaxValidation'=>true,
)); ?>
<p class="note">Fields with <span class="required">*</span> are required.</p>
<div class="row">
<?php echo $form->labelEx($model,'username'); ?>
<?php echo $form->textField($model,'username'); ?>
<?php echo $form->error($model,'username'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'password'); ?>
<?php echo $form->passwordField($model,'password'); ?>
<?php echo $form->error($model,'password'); ?>
<p class="hint">
Hint: You may login with <tt>demo/demo</tt>.
</p>
</div>
<div class="row rememberMe">
<?php echo $form->checkBox($model,'rememberMe'); ?>
<?php echo $form->label($model,'rememberMe'); ?>
<?php echo $form->error($model,'rememberMe'); ?>
</div>
<div class="row submit">
<?php echo CHtml::submitButton('Login',array('id'=>'submit')); ?>
</div>
<?php $this->endWidget(); ?>
</div><!-- form -->
<script>
$("#submit").click(function(){
var password = $("#LoginForm_password").val();
$.ajax({
type: 'POST',
url: '<?php echo Yii;;app()->createUrl("user/encrptpassword")?>',
data: {'password': password},
success:function(data){
$("#LoginForm_password").val(data);
}
});
</script>
public function actionEncrptpassword(){
echo md5($_POST['password']);
}
Aber das ist auch nicht sicher, wie Ajax-Post-Daten bei der Prüfung der Vorlage auch sichtbar ist.
Bitte lassen Sie mich wissen, wie kann ich mein Passwort encrpt
vor Form
Die Implementierung von SSL löst dieses Problem. Ihr Ansatz ist eine Umgehungslösung. Aber du kannst die Implementierung von https://en.wikipedia.org/wiki/Public-key_cryptography in Betracht ziehen. Dort gibt es einige Bibliotheken für GPG für Javascript und PHP. – rNix
@rNix Ich kann SSL jetzt wegen eines Problems nicht implementieren. Bitte lassen Sie mich wissen, wenn ich es ohne diese – user1234
@ user1234 tun könnte, dann sollten Sie vielleicht daran arbeiten, dieses Problem zu lösen, stattdessen - die meisten Web-Server-Tutorials enthalten eine SSL-Sektion, Zertifikate sind jetzt frei, es ist bewährte Methode, Ihre Kommunikation zu sichern, Wie auch immer - was hältst du? –