Faille ajax possible?

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par noren, 11 Février 2015.

  1. noren
    noren WRInaute accro
    Inscrit:
    8 Avril 2011
    Messages:
    2 906
    J'aime reçus:
    14
    Bonsoir

    Etant novice en ajax, je crains de laisser passer des failles.

    J'ai cru comprendre qu'un utilisateur peut modifier le javascript directement via son navigateur (avec un plugin), peut-il injecter du code ici, par exemple :

    Code:
    $("#form").one("submit",function(event) {
          event.preventDefault();
           $.ajax({
             url: $("input[name=urlsubmit]").val(),
             type: "post",
             data: $("#form").serialize(),
             dataType : "json",
             success: function(d) {
                $("#submit-ad-rep").attr("disabled", true);
                $(".errors").fadeOut();
                $(".validates").fadeOut(); 
                if(d["error"]!=null) $(".errors").empty().append(d["error"]).hide().fadeIn(800);
                if(d["valide"]!=null) $(".validates").empty().append(d["valide"]).hide().fadeIn(800);
             }
          });
      });
    Je m'explique, dans d["error"] ou d["valide"] je récupère les messages retour de ma page qui traite le formulaire.
    ma page de traitement envoi ces réponses de cette façon :

    Exemple :

    Code:
    $msg['error'] = "blablabla";
    exit(json_encode($msg));
    ici je retourne dans d["error"] je récupère donc "blablabla"
    Jusque là rien d'anormal

    Mais maintenant qu'est-ce qui empêche un utilisateur mal intentionné de modifier la ligne suivante via son navigateur:

    Code:
    if(d["error"]!=null) $(".errors").empty().append(d["error"]).hide().fadeIn(800);
    par ceci :

    Code:
    if(d["error"]!=null) $(".errors").empty().append("<script>alert('')</script>").hide().fadeIn(800);
    C’est évidemment un exemple, on pourrait imaginer qu'il injecte un script plus complexe

    Résultat ça ajoute bien ceci dans la page HTML

    <p class="validates"><script>alert('')</script></p>

    Je ne peux évidemment pas faire de htmlspecialchars sur ces données retournées en ajax et qui pourraient être modifiées par un utilisateur, étant donné que dans ma vue j'ai uniquement ceci :

    Code:
    <p class="validates"></p>
    Est-ce vraiment une faille ? Cet utilisateur peut il effectuer une injection dangereuse ? Si oui comment l'éviter ?
    Ou suis-je juste parano? :mrgreen:

    PS : j'ai vu sur wikipedia quelque chose faisant référence aux failles XSS "Basé sur le DOM ou local"
    http://fr.wikipedia.org/wiki/Cross-site_scripting
     
  2. loubet
    loubet WRInaute impliqué
    Inscrit:
    19 Février 2003
    Messages:
    792
    J'aime reçus:
    0
    l’intérêt d'une injection, c'est si tu peux faire arriver d'autres personnes sur une page qui va afficher le contenu normal de la page + le contenu que tu ajoutes.
    n'importe quel internaute peut modifier, avec un plugin comme firebug, le contenu d'un p dans une page affichée dans son navigateur pour y mettre du javacript; et c'est en rien ton problème.
     
  3. nervusdm
    nervusdm WRInaute impliqué
    Inscrit:
    5 Janvier 2008
    Messages:
    616
    J'aime reçus:
    0
    Concrètement ça ne doit pas être ta page javascript qui valide le formulaire.
     
  4. noren
    noren WRInaute accro
    Inscrit:
    8 Avril 2011
    Messages:
    2 906
    J'aime reçus:
    14
    ok merci c'était donc bien de la parano mais je préférais m'en assurer :wink:
     
Chargement...
Similar Threads - Faille ajax possible Forum Date
Une faille dans les URL de Google Référencement Google 10 Janvier 2019
Google ferme Google+ (pour les particuliers) suite à la découverte d'une faille Google+ 8 Octobre 2018
Une faille dans Google exploitée par des hackers pour voler le référencement : que faire ? Référencement Google 20 Avril 2016
Test faille javascript - Forbidden Administration d'un site Web 3 Décembre 2015
fail2ban / iptables contre le scan de failles Administration d'un site Web 8 Juin 2015
Tests d'injection sql et tous types de failles Développement d'un site Web ou d'une appli mobile 17 Avril 2015
Outils pour tester d'éventuelles failles de sécurité sur notre site? Développement d'un site Web ou d'une appli mobile 20 Janvier 2015
La faille Heartbleed Administration d'un site Web 14 Avril 2014
Faille Google, Google fail !! Référencement Google 22 Août 2013
Une faille de phpBB exploitée par un site de trading Administration d'un site Web 25 Avril 2012