2010-07-03 4 views
0

J'ai eu un problème avec CI gérant $ _GET et trouvé un moyen de le surmonter.

La question est, Vous voyez des problèmes de sécurité ici?

J'ai mes urls tous les moyens comme

/contacts 
/company/info 

et mon contrôleur par défaut sur CodeIgniter est appelé index

Je peux faire CI agir avec $_GET aussi longtemps que je suis le class/function/default_controller .

Les deux travaux de ces URL:

// class + function + default controller = ok 
/class/function/index?var1=this&var2=that 

// class + default controller = ok 
/class/index?var1=this&var2=that 

La chose est que je veux aussi travailler ces

// class without function nor default controller = NOT OK 
/class?var1=this&var2=that 

// class + function without default controller = NOT OK 
/class/function?var1=this&var2=that 

Ma solution était un peu regex sur le $_SERVER['REQUEST_URI'].

Je ne suis pas un expert en regex donc, pouvez-vous voir un problème de sécurité possible ici?

/* 
|--------------------------------------------------------------- 
| MAKE CODEIGNITER BEHAVE ON _GETS! 
|--------------------------------------------------------------- 
| 
| CI doesn't like to play ball with /contacts?a=23 and fails on several ocasions 
| This forces the first ? or & to be replaced by /index/ that is the default controller 
| 
*/ 
$_SERVER['REQUEST_URI'] = preg_replace('/\?|\&/', '/index/', $_SERVER['REQUEST_URI'], 1); 

Merci.

Répondre

1

Non. Tant que vous ne faites pas aveuglément confiance au $ _GET [] (ce que vous ne devriez pas faire de toute façon), vous êtes bon.

+0

Merci pour l'entrée! ;) – Frankie

Questions connexes