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 :

Caractères les plus dangereux [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 94
    Points : 56
    Points
    56
    Par défaut Caractères les plus dangereux
    Salut à tous.

    J'ai un petit formulaire que j'aimerais un tant soit peu sécuriser, j'ai lu le débat sans fin entre addSlashes() et mysql_escale_().

    Je dois vous dire que ça m'a vite gavé.
    J'ai donc opté pour une solution plus radicale, une regex qui accepterai uniquement les alphaNumériques et voir quelques autres caractères.

    1 - qu'en pensez vous ?

    Aussi, j'ai récupérer cette petite regex pour arriver à faire de l'alphaNumérique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    $string = "Here! is some text, and numbers 12345, and symbols !£$%^& that are not allowed";
    $new_string = preg_replace("/[^a-zA-Z0-9\s]/", "", $string);
    echo $new_string;
    ?>
    Ça marche très bien cependant, comment je fait si je veux accepter les caractères Japonais, Coréens, Russes par exemple ?

    Je me suis dis qu'il fallait que je me fasse une regex, qui fasse l'inverse (c'est la qu'on en reviens au titre du sujet) une regex qui puisse supprimé les caractères les plus nocifs pour les injections sql ou autre.

    Quels sont à votre avis les caractère à évité à tout prix ?
    Je ne cracherai pas sur un petit exemple non plus ^^.

    Un grand merci par avance à une éventuelle réponse !

    ciao et @ bientôt !

  2. #2
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    Citation Envoyé par dimebagplan Voir le message
    Quels sont à votre avis les caractère à évité à tout prix ?
    Je ne cracherai pas sur un petit exemple non plus ^^.
    ça dépend contre quoi tu veux le protéger, ce n'est pas la même chose si c'est utilisé pour une requête SQL ou bien pour l'afficher sur une page XHTML
    regarde là : http://php.developpez.com/faq/index.php?page=securite
    GNAP !

  3. #3
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 94
    Points : 56
    Points
    56
    Par défaut
    Hello, dans la majorité des cas, les champs utilisateurs mèneront à des requêtes sql.

    En effet, j'ai vue que dans la majorité des cas mysql_real_escape_string() convenais bien.

    Peut-etre que de faire une regex pour me supprimer des caractères dit "dangeureux" ne me servirais peut-etre pas à grand chose finalement ?

  4. #4
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par dimebagplan Voir le message
    Hello, dans la majorité des cas, les champs utilisateurs mèneront à des requêtes sql.

    En effet, j'ai vue que dans la majorité des cas mysql_real_escape_string() convenais bien.

    Peut-etre que de faire une regex pour me supprimer des caractères dit "dangeureux" ne me servirais peut-etre pas à grand chose finalement ?
    Salut,

    Oui, c'est peut-être inutile, et de plus, tu risques de t'embarquer dans du lourd si tu veux commencer à matcher de l'unicode (japonais et chinois par exemple).

    Et en hs, je ferais encore un peu de pub à PDO qui encapsule cette sécurité grâce aux requêtes préparées.
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

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

Discussions similaires

  1. Requêtes les plus consommatrices
    Par orafrance dans le forum Administration
    Réponses: 7
    Dernier message: 25/09/2009, 09h22
  2. [image] trouver les couleurs les plus présentes
    Par giminik dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 25/01/2005, 03h35
  3. avis aux experts-Quels sont les logiciels les plus adaptés??
    Par chouchouappc dans le forum Décisions SGBD
    Réponses: 46
    Dernier message: 20/07/2004, 21h26
  4. recup des enregistrement les plus récents.
    Par julien_guy dans le forum Langage SQL
    Réponses: 8
    Dernier message: 29/06/2004, 11h04
  5. Réponses: 3
    Dernier message: 28/11/2003, 21h26

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