Fonction de sécurité contre la pollution des variables et le hijacking

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 338 fois - Téléchargée 26 fois

Contenu du snippet

Fonction pour lutter contre la pollution des variables vous appelez la fonction en tout début de page par exemple dans le header de votre site avant toute utilisation des super globales (get, server, env, post, cookie, etc)... cette fonction va tout simplement rechercher la présence de variable(s) interdite(s) dans les données soumises par l'internaute (get, post, cookie) et si elle en trouve elle met leur valeur à null... en parallèle un nettoyage de la super globale $GLOBALS est fait... c'est particulièrement utile pour ceux qui sont en register global à On et qui ont des mauvaises habitudes de codage (cela ne dispence bien entendu pas de prendre les bonnes habitudes)... ..

Source / Exemple :


/**

  • Check superglobals for contamination and to prevent session hijacking
*
  • @return void
    • /
function checkSuperGlobals() { $vars_array = array( 'GLOBALS', '_SESSION', '_GET', '_POST', '_COOKIE', '_REQUEST', '_SERVER', '_ENV', '_FILES', ); $inputs = array_merge($_GET, $_POST, $_COOKIE, $_SERVER, $_ENV, $_FILES, isset($_SESSION) ? (array)$_SESSION : array()); foreach($inputs as $k => $v) { if (isset($GLOBALS[$k]) && !in_array($k, $vars_array)) unset($GLOBALS[$k]); elseif(in_array($k, $vars_array) && isset($_REQUEST[$k])) { $_REQUEST[$k] = null; if(isset($_GET[$k])) $_GET[$k] = null; if(isset($_POST[$k])) $_POST[$k] = null; if(isset($_COOKIE[$k])) $_COOKIE[$k] = null; } } }

Conclusion :


Il va de soit que ce n'est pas parce que vous utiliserez cette fonction que vous serez à l'abri de tout... .. .

En espérant que ça vous serve... .. .

@ tchaOo°

A voir également

Ajouter un commentaire

Commentaires

FoxLeRenard
Messages postés
6
Date d'inscription
samedi 2 juillet 2005
Statut
Membre
Dernière intervention
5 novembre 2018

OK parfait et en tout cas merci,
Oui Oui bien sur je comprends la vitesse d'évolution ...
mais il reste encore bien des serveurs mal protégés !!!
A bientôt le plaisir de te croiser
kankrelune
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015

Oui il faut executer ce code au début de toutes les pages concernées... après session_start() sinon la sg $_SESSION ne sera pas testée... .. .

Mais avant d'utiliser ce code vérifie ta version de php et surtout que register_globals est activé sinon ça ne sert à rien de l'utiliser... ça fait 4 ans que j'ai posté cette source php a évolué depuis... .. . ;o)

@ tchaoo°
FoxLeRenard
Messages postés
6
Date d'inscription
samedi 2 juillet 2005
Statut
Membre
Dernière intervention
5 novembre 2018

Oui c' est bien ton code de sécurité que tu dis de placer en tête, ça veut dire en tête de tout mes php ? et j'appelles la fonction de suite même avant d'avoir fait session_start(); ???

Au passage merci de m'avoir répondu si vite t' es génial !
kankrelune
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015

? j'ai pas compris là... tu es sûr d'être sur la bonne source ? si c'est le cas si tu pouvais préciser... .. .

@ tchaOo°
FoxLeRenard
Messages postés
6
Date d'inscription
samedi 2 juillet 2005
Statut
Membre
Dernière intervention
5 novembre 2018

Hum ... ça va hurler mais j'oses ...
avec google on peut atteindre nos sites par nimporte quel PHP alors comment utiliser cette fonction juste a l'arrivée d'un visiteur,

En fait j'irais même bien plus loin, si j'ais passé cette bariére, j'ouvre
un autre onglet sur la même page je serais vu dans la même session non ?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.