Aller au contenu

[RESOLU]Sécurisé


Messages recommandés

Posté(e)

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

Posté(e)

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 ?

Posté(e)

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)

Posté(e)

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).

Posté(e)

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";
}


?>

Posté(e)

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.

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...