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

Langage PHP Discussion :

suppression de certains mots clés SQL [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 500
    Points : 238
    Points
    238
    Par défaut suppression de certains mots clés SQL
    Hello, je suis en train de créer une petite fonction perso pour supprimer certains mots-clés SQL , voici ce que j'ai actuellement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $string = eregi_replace("[^:alpha:](select)|(drop)|(update)|(alter)|(create)|(insert)|(grant)|(revoke)[^:alpha:]", "", $string);
    Mes phrases de test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $_POST["toto"] = " selection; select * from users;select * from users;";
    $_POST["tot2o"] = "drop table toto; droppy !";
    $_POST["tot2o3"] = " grant * on users; grannt";
    Actuellement ça me sort ça apres traitement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [toto] => selection; * from users * from users; [tot2o] => table toto; py ! [tot2o3] => * on users; grannt

    Il manque pas grand chose mais le mot clé "DROP" pose probleme là, vous voyez d'où ça peut venir?


    merci.
    L'intelligence c'est comme la confiture, moins tu en as , plus tu l'étales...

  2. #2
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    C'est destiné à quoi au juste ?
    Parce que si c'est pour protéger tes bases, ce n'est pas la bonne façon de procéder...

    le mot clé "DROP" pose probleme là
    Non, c'est n'est le mot qui pose problème : le problème sera présent pour tous termes
    Utilise les marqueurs de début et de fin de mot : \b.
    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

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je ne vois effectivement pas ce qui ne va pas dans ton expression (à part eregi qui est obsolète) mais sinon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo preg_replace("#\b(select|drop|update|alter|create|insert|grant|revoke)\b#", "", $string);
    edit : encore doublé par bovino
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 500
    Points : 238
    Points
    238
    Par défaut
    Hello, merci pour vos réponses,
    donc deja non, c'est pas pour sécuriser ma base, mais plus un complément.
    Le but étant de supprimer uniquement les mots clés, et non les mots contenant ces mots-clés:

    droppy => ne bouge pas.
    drop * from toto => * from toto;



    EDIT: avec ton pattern ca passe nickel Sabotage, merci, par contre faut rajouter \i à la fin pour une expression insensitive de tête non?
    L'intelligence c'est comme la confiture, moins tu en as , plus tu l'étales...

  5. #5
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 500
    Points : 238
    Points
    238
    Par défaut
    Voici l'expression finale, qui fonctionne nickel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $string = preg_replace("/\b(select|drop|update|alter|create|insert|grant|revoke)\b/i", "", $string);

    merci à vous deux.
    L'intelligence c'est comme la confiture, moins tu en as , plus tu l'étales...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Suppression ligne par mot clés
    Par CED5076 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/06/2014, 12h36
  2. Obtenir les mots clés standard de SQL
    Par reg01 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 27/03/2010, 17h08
  3. [MySQL] [MySQL] requête sql recherche de mots clés
    Par lanysteph dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 02/07/2009, 18h13
  4. Type de données et mots clés T-SQL
    Par katoyi dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 28/04/2008, 17h52
  5. Mots clés dans une table sql
    Par vince_grenoblois dans le forum Langage SQL
    Réponses: 1
    Dernier message: 01/08/2006, 14h21

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