Sécurisation de variables
Bonjours à tous et à toutes.
Je reviens de php.net et je suis un peu paumé par rapport à toutes les commandes de sécurisation de variable, entre htmlspecialschars, htmlentites, mysql_......
Donc voila, je vais définir quelques situations, et je voudrais juste savoir si j'ai choisie les bonnes fonctions pour ça =)
Pour chaque situations, la première ligne serra pour l'enregistrement (E: -> mysql_query(....), la seconde serra pour l'affichage (A: -> echo ...).
Ps: oublions que les magics quotes existent pour ce cas :)
1) Une variable de pseudo (alphanum + "-" + "_")
Code:
1 2 3 4
| E: regex "preg_match('#^[0-9A-Za-z-_]*$#',$var)"
//et si ça passe->
mysql_real_escape_string($var)
A: htmlentities($donnees['var'], ENT_QUOTES) //($donnees ou $_POST) |
2) Un variable de mot de passe
Code:
1 2
| E: md5($var) [ça suffis ?]
A : if($donnees['var'] == md5($_POST['pass'])) |
//Je préfère ne sélectionner que le nom d'utilisateur dans la table et vérifier le pass par la suite.
3) Une chaine de caractère sans html interprété (style chat)
Code:
1 2
| E: mysql_real_escape_string($var)
A: htmlentities($var, ENT_QUOTES) |
4) Une chaine de caractères html (partiel) autorisé (style forum)
Code:
1 2 3
| E: mysql_real_escape_string(stiptags(bbcode($var)))
A: bbcode_decode(stripslashes($var));
//bbcode() & bbcode_decode() -> fonction perso qui remplace les balises autorisées en bbcode |
5) une chaine de caractère html (complet) autorisé (style backend news (editeur WYSIWYG))
Code:
1 2
| E: mysql_real_escape_string(htmlentities($var))
A: html_entity_decode(stripslashes($var)) [ou htmlspecialchars là ?] |
Si vous voyez d'autre situations, ou que vous avez d'autre conseil, je suis preneur :D
Merci d'avance
Edit: ah ouais, et aussi: pour faire un cookie "sur" il faut faire un id compliqué.
un truc du genre:
Code:
sha1(md5($user['ip_denregistrement']).$user['password'].md5($user['date_denregistrement']))
Vous parrait il correct ?