March 20, 201015 yr Coucou, Je voudrais sécurisé les variables $_POST, et j'ai pleins de questions qui me vienne car je ne suis pas certain, est-ce que si j'utilise ce code je n'aurais pas besoin d'utilisé mysql_real_escape_string? : preg_match("#^[0-9,]+$#", $_POST['tab']) De même pour celui-ci qui est que pour accepté des lettres et des chiffres? preg_match("#^[0-9A-Za-z]+$#", $_POST['exemple'] ) Merci
March 20, 201015 yr Normalement non après tu as peut être intérêt à les mettre systématiquement quitte à faire 2 sécurités comme ça si tu oublie une vérification ça risque pas de tout casser. Sinon c'est quoi ces # dans les regexp ?
March 22, 201015 yr Author Merci RaphAstronome! Première chose importante à savoir : une regex (= expression régulière) est toujours entourée de caractères spéciaux appelés délimiteurs.http://www.siteduzero.com/tutoriel-3-14608-les-expressions-regulieres-partie-1-2.html Dans ce regex je ne comprend pas pourquoi il trouve tout les caractères, sauf le 0, alors qu'il s'y trouve: preg_match("#^[ \'a-zA-Z0-9@._-ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ]+$#", $mot)
March 22, 201015 yr Chez moi le 0 fonctionne bien. Par contre deux choses : * Vu que tu utilises des PCRE, tu devrais plutôt utiliser \w et \s, c'est plus lisible. Et quand on se préoccupe de la sécurité, la lisibilité est un facteur essentiel. * Je trouve que ta regex est un peu large. Pour de la sécu, l'idéal, c'est de restreindre le nombre de caractères autorisés au maximum (et donc d'en autoriser le minimum).
March 24, 201015 yr Author Désoler, je vien de réessayer et ça marche effectivement, et merci encore! c'est plus lisible if(isset($_GET['mot'])){ $mot = $_GET['mot']; }else{ $mot = false; } if(preg_match("#^[\s\w\'@.-äçèéêëöùûü]+$#", $mot)){ echo "existe"; } ?>
March 28, 201015 yr Bien que ce sujet soit tag comme résolu, je tiens à préciser que traiter les variables _GET et _POST pour sécuriser un script est la plus mauvaise chose à faire. Cela ne doit en aucun cas se substituer à la fonction MySQL prévue à cet effet, qui elle sera capable de gérer tous les cas particuliers. Doubler les sécurités n'ont aucun intérêt, hormis celui de ralentir l'exécution.
Archived
This topic is now archived and is closed to further replies.