Astuces ⇒ PHP facebook twitter youtube

Protéger un  site web ⇒ & Sécuriser un script PHP




Si vous utilisez un petit script en PHP qui traite les données d'un formulaire ou d'une variable dans une URL comme "/?page=23&id=categorie" (donc utilisation des requêtes GET ou POST), il faut filtrer ces données pour éviter toute faille.

J'utilise ce bout de code que je mets en tête du script afin de filtrer toutes les données qui y entrent:
 

foreach ($_REQUEST as $key => $val)  {   $val preg_replace("/[^_A-Za-z0-9-\.&=]/i",''$val);   $_REQUEST[$key] = $val; }  

 

Ainsi ne sont autorisés que les caractères alphanumériques et les signes _ - . & =
Tous les autres caractères sont effacés.

Il existe un autre filtre si celui présenté ci-dessus est trop restrictif:

<?php foreach ($_REQUEST as $key => $val) 

{

  $val trim(stripslashes(htmlentities($val)));

  $_REQUEST[$key] = $val;

}  

 

?>

Pour protéger une variable précise envoyée par formulaire on peut mettre au choix un des deux filtres ci-dessous (ne pas mettre les 2 filtres pour une même variable):
 

Code PHP:

 

/* pour un filtrage de base */
$variable trim(stripslashes(htmlentities($_POST["variable"])));

/* pour un filtrage plus restrictif */
$variable preg_replace("/[^_A-Za-z0-9-\.&=]/i",''$_POST["variable"]);  

Ceci est une protection générale qui fonctionne contre les formes les plus simples de piratage.
Ne mettez ce code que seulement s'il n'y a aucun système de filtrage.

À partir de PHP 5.2, il existe une série de filtres qui permet de bien cibler le filtrage des données: http://fr.php.net/filter. Deux tutoriels en anglais sont disponibles, le premier ici et le second là.


Changer le fond
Oregionale Skin
7astuces
Sélectionnez un Fond (11)
7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces
Fond de contenu
7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces