Sécuriser les données envoyées par formulaire

mar 19
2009

PHP

Protéger des données lors de transferts

Il va vite vous arriver de créer des formulaires en HTML sur un traitement PHP. La peur principale de celui qui commence le PHP c’est de tomber sur un hacker qui va tout faire pour trouver de quoi vous embêter en envoyant des requêtes SQL (dans la mesure du possible) vicieuses ou je ne sais quoi d’autre.

Une des nombreuses manières de sécuriser un champ lors de l’envoi d’un formulaire, par exemple un formulaire d’inscription sur votre site Internet (donc écriture d’informations dans une base de données SQL a priori) est de rajouter des slashes (/) automatiquement grâce à la fonction addslashes();.

Vérifiez avant tout auprès de votre hébergeur que la directive PHP magic_quotes_gpc est à off. En effet si elle est sur on alors toutes les données envoyées par méthode POST, GET ou COOKIE sont déjà protégées de la sorte, donc cette astuce ne vous sert pas directement.

Comment utiliser cette fonction ?

C’est simple il vous suffit de l’utiliser sur vos variables d’envoi, exemple pour un formulaire utilisant la méthode POST :

<?php
$pseudo = addslashes($_POST['pseudo']);
$age = addslashes($_POST['age']);
//etc…
//puis script d’enregistrement sur une base de données réutilisant les nouvelles variables $pseudo etc…
?>

Lorsque vous récupèrerez les données de la base de données il vous faudra alors tenir compte de cette sécurité en utilisant cette fois la fonction inverse afin de retirer les slashes, c’est à dire stripslashes();.
Il s’agira alors pour vous de récupérer les données de votre base de données dans des variables, et d’utiliser cette fonction sur vos variables :

<?php
$pseudo = stripslashes($pseudo_bdd);
$age = stripslashes($age_bdd);
//etc…
?>

Cette astuce n’a pas la prétention de vous protéger à 100% puisqu’il existe bien d’autres éléments à prendre en compte lors de l’inscription de données dans une base de données.
En effet il vous faudra vérifier la syntaxe des email, le contenu des champs de manière plus précise afin d’éviter un autre fléau du net, le spam !

N’hésitez pas à poser vos questions ou relever tout élément de mes dires qui semble suspect. Je vous invite aussi à visite le manuel PHP en suivant les liens donnés sur cet article.

Merci de votre lecture.

Pages internes

Info sur le blog...

Validation

Pour un web accessible...