NETTOYAGE DES VARIABLES

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 27 déc. 2004 à 12:54
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 30 déc. 2004 à 18:09
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/28423-nettoyage-des-variables

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
30 déc. 2004 à 18:09
Concernant le niveau regardes ça, on va l'améliorer :

http://www.phpcs.com/forum.v2.aspx?ID=360866 ;-)
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
30 déc. 2004 à 18:07
Heu ton hébergeur si il a une version de php vieille de deux ans et demi comme tu dis, t'appelles ça un hébergeur (lol) ?

concernant le niveau oui c'est dommage, mais bon ça va remonter surement (on peut pas descendre plus je pense) ^^

a +
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
30 déc. 2004 à 18:02
Merci pour le tit bienvenue :P
Mais, je ne pense pas que TOUS les hébergeurs l'accceptent... yen a un pour une company ou je fais un site web, ils fonctionnent sous Windows 2000, et OMG tu pleurerais à savoir ce qu'ils ont...
Ils ont une version spécial de PHP vieilles de 2ans et demi et genre c'est une version modifiée pour qu'elle fonctionne avec Windows 2000 à eux... donc $_SERVER['DOCUMENT_ROOT'] n'existe pas, les sessions ne fonctionnent pas, display_errors est à Off, tout un foutu bordel :P Alors je te dis pas, les htaccess ce qu'il font :P

@±, oh mais je ne sais pas si je vais rester ... le niveau semble bas... :(
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
30 déc. 2004 à 17:25
Lol après 6 mois d'absence, retour de GRenard !!!!

Bienvenue ;-)

Donc pour ce qui est du htacess ça fonctione chez tous les hébergeurs, après en dédié si tu veux ne pas le faire fonctionner ça me dérange pas lol ^^

Pour ce qui est du code j'ai pas regardé en profondeur aussi tes remarques quant aux modifs dans la boucle sont pas mal ;-)

a +
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
30 déc. 2004 à 17:16
wouaaa ! Anthomicro, je ne m'étais jamais penché sur le fait qu'on pouvait faire ca dans le htacces... j'ai remarqué ca, mais il y a de lourdes contraintes !
Il faut que ton php soit chargé en module et non en cgi, il faut que ton AllowOverride ne soit pas à None dans Apache (et ca c'est pas toujours toi qui le décide !!)

Hey RaphAstronome, au lieu de faire deux boucles une dans l'autre, pourquoi ne fais tu pas la fonction in_array() ? Ou sinon, au moins, break ta boucle intérieur lorsque tu as trouvé la variable ! (Si tu corriges, rajoute dont <?php au lieu de <?)
Eh, c'est rare les for comme ca : for ($i=0;$sec[$i];$i++), tu dois venir de C++ pour faire ca :P parce que de cette manière la ca génère un Warning car le $sec[$i] est testé une fois de trop (ce qui n'est pas grave en soit et qui est normal)... mais tu devrais utiliser une fonction en php pour vérifier si l'index du tableau existe... Il faut utiliser isset()
Va lire ceci si tu veux :) http://www.phpcs.com/code.aspx?ID=24870
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
27 déc. 2004 à 12:54
Salut ;-)

Mettre le register globals à off résoud ce problème, ceci dit j'aime bien le concept.

Pour le htaccess qui fixe le register globals à off :

mettre ceci dans un fichier .htaccess :

php_flag register_globals Off

Ensuite tu peux remplacer ton code par ça :

// dans le script ///////////////////////////////
$securityenter = array('var1','var2', 'var3');
require 'secure.php';



// secure.php //////////////////////////////////
<?php
// Liste les variables entrées
$sec = explode('&',$_SERVER['QUERY_STRING']);

// Pour chaque variable entrée
for ($i=0;$sec[$i];$i++) {

// Récupère le nom
$sec2 = explode('=',$sec[$i]);
$danger = 1;

// Si dans la liste des pas dangereux : ok
foreach($securityenter as $security) if ($sec2[0] == $security) $danger = 0;

// Si dangereux détruit la var suspecte
if ($danger == 1) unset($$sec2[0]);
}
?>

Voilà ;-)

a +
Rejoignez-nous