RESOLU | Tutoriel : Sécuriser mes variables $_GET et $_POSTQuelles vérifications dois-je faire lors de la réception des mes variables $_GET et $_POST d'un point de vue de la sécurité de mon site web et de mon serveur? Tout le monde s'est déjà posé la question et je vais y répondre dans ce tutoriel. La suite dans ma réponse! |
Webmasters - Développement web Langages serveur | |
$_GET $_POST sécurité vérifications post | |
Dr. Dino Posté le : 27 Août à 16:47 51 084 vues |
Dr. Dino Posté le : 27 Août à 17:12 |
Alors une chose à savoir sur les variables $_GET et $_POST : elles ne sont pas à l'abri d'une injection! C'est à dire que n'importe qui peut envoyer n'importe quoi via ces variables. Je pense en particulier à un DROP table dans le joli pseudo que vous vous apprêtiez à rentrer innocemment dans votre base de données! Et BIM, c'est la cata! Pour éviter ça, il n'y à pas trente six solutions, il faut SE-CU-RI-SER vos variables. Et pour ça (chacun sa méthode), mais pour moi, trois réflexes à appliquer à chaque fois que l'on reçoit des données d'un formulaire, à chaque variables reçues : La fonction htmlentities : Cette fonction remplace les caractères spéciaux par leurs équivalent html. Ces caractères pourront donc, dans tous les cas, être lu par le navigateur. $ma_var = htmlentities($_POST["ma_var"]); La fonction addslashes : Cette fonction précede les caractères spéciaux par des antislashes. Ces caractères seront donc, au lieu d'être interprétés par le navigateur, affichés tel quel. $ma_var = addslashes($_POST["ma_var"]); Et enfin la fonction filter_var : Cette fonction permet de vérifier que le format de données reçue corresponds bien au format de donnée attendu et au format de donnée nécessité par votre base de donnée. Elle est différente pour chaque type de donnée et vous devrez sans doute mettre les mains dans le cambouis des regex pour utiliser tout son potentiel. Voici les principaux exemples: $mon_int = filter_var($_POST["mon_int"], FILTER_VALIDATE_INT); $mon_petit_int = filter_var($_POST["mon_petit_int"], FILTER_VALIDATE_INT, array("options"=>array("min_range"=>0, "max_range"=>100))); $mail = filter_var($_POST["mail]", FILTER_VALIDATE_EMAIL); $mail = filter_var($_POST["mail]", FILTER_VALIDATE_REGEXP, array("options"=>array("regexp"=>"/^.+@\w+(\.\w+)+$/")))); $url = filter_var($_POST["url"], FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED)); etc... Je vous conseille vivement de visiter la page php correspondante : http://php.net/manual/fr/function.filter-var.php Merci Dr. Dino! |
RESOLU | La différence entre dur et solideBonjourLa différence entre dur et solide? |
Vie pratique | |
Dur Solide |
RESOLU | Comment supprimer des balises HTML dans une chaîne de caractères ?Bonjour,J'aimerais supprimer des HTML sur une string, que dois-je utiliser ? Merci! |
PHP | |
PHP HTML |
RESOLU | "Tarif" et "montant"BonjourPensez vous que tarif et montant ont le même sens? |
Entreprise | |
Tarif Montant |
RESOLU | "Tutelle" et "curatelle"SalutSavez vous la différence entre tutelle et curatelle? |
Langues | |
Tutelle Curatelle |
RESOLU | La différence entre juridique et judiciaireSalutAvez vous une idée sur la différence entre juridique et judiciaire? |
Vie pratique | |
Juridique Judiciaire |
RESOLU | "Ostéopathe" et "physiothérapeute"SalutEst ce que ostéopathe et physiothérapeute est la même chose? |
Vie pratique | |
Ostéopathe Physiothérapeute |
RESOLU | La différence entre astéroïde et comèteSalutJ'ai besoin de savoir la différence entre astéroïde et comète? |
Vie pratique | |
Astéroïde Comète |
RESOLU | "Décoction" et "infusion"SalutLa différence entre décoction et infusion? Merci d'avance. |
Langues | |
Décoction Infusion |
RESOLU | "Processus" et "procédure"SalutComment je peux distinguer entre processus et procédure? |
Vie pratique | |
Processus Procédure |
RESOLU | Kiosque et standBonjourKiosque et stand sont la même chose? |
Vie pratique | |
Kiosque Stand |
RESOLU | "Navire" et "paquebot"SalutAvez vous une idée sur la différence entre navire et paquebot? |
Langues | |
Navire Paquebot |
RESOLU | Angleterre et Royaume-UniBonjourEst-ce que l'Angleterre et Royaume-Uni sont le même endroit? |
Divertissement | |
Angleterre Royaume-Uni |
RESOLU | La différence entre vague et houleBonjourLa différence entre vague et houle? |
Langues | |
Vague Houle |
Veuillez vous connecter pour profiter pleinement de toutes les fonctionnalités de Oyant. | ||
Connexion |
Inscription |
|
Poster une question |