Sécuriser les formulaires
La création de formulaires est bien trop souvent pris à la légère. Les formulaires, servent le plus souvent à remplir une base de données ou à y récupérer des informations.
Nous allons voir ici, comment sécuriser au maximum un formulaire
- Le Captcha
- Neutralisation des caractères spéciaux
- Contrôle formulaire
- Considérer une manipulation malveillante du formulaire si celui-ci met trop de temps à être rempli
- Considérer nue manipulation du formulaire par un robot si celui-ci est rempli trop rapidement
- Sécurisation contre les attaques XSS
- Sécurisation contre les attaques CSRF
- Le Captcha
Le captcha permet d'identifier une personne humaine. En effet, les robots ne sont pas encore dotés d'une reconnaisance de caractère assez pointu pour lire des images complexes ou encore répondre à des questions mathématique par exemple.
Pour mettre en place simplement un captcha efficace, nous allons utiliser ReCAPTCHA.
Dans un premier temps, télécharger la librairie recaptcha-php-1.9.zip à l'adresse suivante :
Uploadez tout ça sur votre serveur.
Dans le code de votre formulaire placez le code suivant là où vous voulez faire apparaître l'image d'identification :
require_once('recaptchalib.php'); $publickey = "..."; // Placez la cle public ici echo recaptcha_get_html($publickey);
Ensuite, dans le code de validation du formulaire, placez ce code :
require_once('recaptchalib.php'); $privatekey = "..."; $resp = recaptcha_check_answer ($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]); if (!$resp->is_valid) { die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." . "(reCAPTCHA said: " . $resp->error . ")"); }
Maintenant, nous allons générer une clé public et une clé privé pour garantir l'intégrité de la vérification de l'image.
Connectez-vous sur le site de recaptcha à l'adresse suivante :
et générez les clés pour votre domaine.
Une fois les clés obtenues, inscrivez la clé pulic dans le premier code à l'emplacement indiqué et faite de même pour la clé privée dans le code de validation.
Vous verrez apparaître sur votre site un beau Captcha éfficace :)
C'est tout pour aujourd'hui.
A venir : 2, 3, 4, 5