Alors pour commencer, je ne parle pas d'un formulaire classique. En effet, je ne sais pas si vous l'avez déjà remarquer, mais parfois lorsque vous vous identifiez sur un site, votre mot de passe disparé de l'inputbox avant que la page elle-méme disparraisse.
Il s'agit (pour ce que j'en ai constaté) d'un javascript qui extrait et encode votre mot de passe avant de l'envoyé par HTTP. C'est un moyen sympa de sécurisé le transfert d'un couple login/pass sans passé par https.
Donc je vous met l'exemple que j'ai trouvé dans le cms typo3 :
Une fonction javascript pour "encoder":
Et le formulaire qui va avec:
Voir ici (ne faites pas trop de test, c'est la vrai page d'auth pour accéder à l'admin de typo3.org).
En gros, ce qui se passe ici, c'est que quand le gars soumet le formulaire, le javascript créé un nouveau champs caché dans le formulaire et dans lequel il met le hash md5 de votre login, votre pass et une clé d'auth tout concaténé. Et ensuite il vide bien le champs password du formulaire pour pas que votre mot de pass soit transmit en claire.
Alors pour ceux qui on pas compris, mon very first diagramme fait avec Dia:
A gauche le shéma avec l'utilisation d'HTTPS (donc sécurisé) et à droite le shéma avec du HTTP, mais avec la fonction javascript en plus pour "crypter" le pass (on peut imaginé que la fonction serat un md5 par exemple). Bien sur là vous n'avez que la partie client, mais le reste n'est pas trés dure à imaginé
Voila, j'aimerais savoir ce que vous pencez de ce systéme, si vous avez de meilleur solutions, des idées, etc...
Il s'agit (pour ce que j'en ai constaté) d'un javascript qui extrait et encode votre mot de passe avant de l'envoyé par HTTP. C'est un moyen sympa de sécurisé le transfert d'un couple login/pass sans passé par https.
Donc je vous met l'exemple que j'ai trouvé dans le cms typo3 :
Une fonction javascript pour "encoder":
Code :
function doChallengeResponse(superchallenged) { //
password = document.loginform.p_field.value;
if (password) {
if (superchallenged) {
password = MD5(password); // this makes it superchallenged!!
}
str = document.loginform.username.value+":"+password+":"+document.loginform.challenge.value;
document.loginform.userident.value = MD5(str);
document.loginform.p_field.value = "";
return true;
}
}
Et le formulaire qui va avec:
Code :
<form action="index.php" method="post" name="loginform" onsubmit="doChallengeResponse(1);">
<input type="hidden" name="challenge" value="8a8cd22345eb9020fbedea8376ea176f" />
<input type="text" name="username" value="" class="c-username" />
<input type="password" name="p_field" value="" class="c-password" />
<input type="submit" name="commandLI" value="Log In" class="c-submit" />
</form>
En gros, ce qui se passe ici, c'est que quand le gars soumet le formulaire, le javascript créé un nouveau champs caché dans le formulaire et dans lequel il met le hash md5 de votre login, votre pass et une clé d'auth tout concaténé. Et ensuite il vide bien le champs password du formulaire pour pas que votre mot de pass soit transmit en claire.
Alors pour ceux qui on pas compris, mon very first diagramme fait avec Dia:
A gauche le shéma avec l'utilisation d'HTTPS (donc sécurisé) et à droite le shéma avec du HTTP, mais avec la fonction javascript en plus pour "crypter" le pass (on peut imaginé que la fonction serat un md5 par exemple). Bien sur là vous n'avez que la partie client, mais le reste n'est pas trés dure à imaginé
Voila, j'aimerais savoir ce que vous pencez de ce systéme, si vous avez de meilleur solutions, des idées, etc...