IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Sécurisation d'envoi de this.value? Parce qu'un "&" change les données


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2004
    Messages : 13
    Par défaut [AJAX] Sécurisation d'envoi de this.value? Parce qu'un "&" change les données
    Bonjour tout le monde,

    J'ai un petit souci d'AJAX. Je fais un pré-contrôle de champs lors d'un remplissage de formulaire, via ajax. dans le xhr.send, j'envoie les paramètres comme ceci : username='+this.value;

    Je ne pense pas avoir besoin d'ajouter d'autre code là dedans, en fait mon souci étant que si la personne utilise un & dans son pseudo, et bien... Ca change l'envoi, tout simplement.

    Pour un exemple, si le pseudo est hel&lo, la requête envoyée est username=hel&lo, donc analysée avec deux attributs de POST.
    Quelqu'un aurait une idée sur comment empêcher ça?

    Merci

    EDIT: Il y a bien la fonction escape(), mais elle n'est pas proche de htmlspecialchars, elle met la chaine sous forme d'URL plus ou moins..

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 133
    Par défaut
    On peut utiliser la fonction escapeHTML() de prototype :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function test()
    {
    	a = "h&ello" ;
    	alert(a) ;
    	alert( a.escapeHTML() );
    }
    Mais ça ne protègera pas d'une attaque,vu que l'attaquant pourra modifier le javascript.

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Zartan Voir le message
    On peut utiliser la fonction escapeHTML() de prototype
    Utiliser Prototype pour échapper un caractère
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'username='+encodeURIComponent(this.value);
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 133
    Par défaut
    Ce n'était pas la bonne fonction...

    Ceci dit:

    Citation Envoyé par Bovino Voir le message
    Utiliser Prototype pour échapper un caractère
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'username='+encodeURIComponent(this.value);

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String.prototype.escapeHTML = function(suffix) {
        return this.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');
    }
    On peut utiliser une fonction sans utiliser toute la bibliothèque.

Discussions similaires

  1. [AJAX] Sécuriser les php nécéssaires aux xmlhttprequest
    Par gandalf76fr dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 28/01/2007, 13h11
  2. this.value et IE
    Par Death83 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 15/07/2006, 14h44
  3. [AJAX]problème d'envoie de données méthode POST
    Par xave dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/07/2006, 16h35
  4. [Sécurité] Sécuriser l'envoi d'un numéro de carte
    Par Alexino2 dans le forum Langage
    Réponses: 23
    Dernier message: 02/07/2006, 22h13
  5. This.value au lieu de document.getElementById('field').value
    Par yoyot dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 04/03/2005, 14h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo