no save
Assistance
Achat
News

Forum | webmastering
problème de sécurité entre AJAX et PHP
ajaxPowaa, le jeu. 24 janv. 2008 à 20:56:48
Salut à tous,

je programme en php depuis que je suis tout petit et je suis en train de bosser sur l'interactivité avec les utilisateurs via l'AJAX. J'ai vu moultes scripts javascript/php permettant de reconnaitre des users par login/pwd sans devoir rafraichire la page

le hic : ces scripts sont hackable sans aucun problème. il suffit de faire une boucle javascript et de soumettre tous les mots de passes possibles et imaginables pour un login à la page PHP de test et de collecter le résultat pour trouver lequel est correct. typiquement, voici un code qui le permet sans aucun problème :


var loginAtester="";
while (true){

// tant que le résultat du précédent login n'est pas arrivé, on attend
while(XHR!=null && loginAtester!=""){
setTimeout(true,5);
}

XHR=getXMLHTTP(); // fonction qui crée un XHR
if(XHR)
{
try{
// on fait appel à la page php qui permet de tester le login
XHR.open("GET","http:/www.monsite.com/testLogin.php?id="+loginAtester,true);
XHR.onreadystatechange=function() {
if(XHR.readyState==4 && XHR.status == 200) {
// si le mot de passe est bon on l'affiche
if (XHR.responseText="bon mot de passe")
alert(loginAtester+"est le bon login");
// on réinitialise le XHR
XHR=null;
}
}
// envoi de la requête
XHR.send(null);
nextLogin(); // on passe au login suivant à tester
}catch(exc)
{
alert(exc);
}
}
}

on voit donc bien que depuis nimporte quel ordinateur connecté à internet, il est possible de lancer ce type de boucle qui va tester tous les possibilités (ici tous les logins possibles).

Une solution est de intégrer un compteur d'essai pour chaque login dans la base de donnée, et de renvoyer d'office "mauvais login" quand on a dépassé un certain nombre d'essai ... mais je trouve cette méthode barbare. N'y a t-il pas une solution pour tester la provenance de l'appel ?

d'avance merci pour vos réponses

Raf Configuration: Windows XP
Internet Explorer 7.0


VOYAGEUR25
janv. 08
Suivant
REPONSES
VOYAGEUR25
janv. 08
ajaxPowaa
janv. 08
Alain42
janv. 08
ajaxPowaa
janv. 08
Version Web
Réalisé par RedShift
no save