Une question que je ne suis probablement pas le seul à m'être posé. Comment peut on mettre un test sous forme de variable? Est ce irréaliste? ou me suis je totalement fourvoyé?
Par exemple:Code:
1
2 $test = "<"; if ($a $test 3)
Version imprimable
Une question que je ne suis probablement pas le seul à m'être posé. Comment peut on mettre un test sous forme de variable? Est ce irréaliste? ou me suis je totalement fourvoyé?
Par exemple:Code:
1
2 $test = "<"; if ($a $test 3)
tu veux faire ça pour quoi ?
c'est possible d'exécuter du code PHP qui se trouve dans une chaine de caractères mais c'est très déconseillé pare que tu peux avoir des gros problèmes de sécurité
Je veux essayer de limiter le nombres de ligne de code en augmentant la "portée" des certaines fonctions.
La fonction actuelle est semblable a ceci:Ceci m'oblige a reproduire inutilement du code.Code:
1
2
3
4
5
6
7
8
9
10 function Extract($a, $test){ if($test == "<"){ if($a < 100) ... } else { if($a > 100) ... } }
Je n'ai aucune idée de la méthode et encore des risque qu'elle représente.
Merci d'avance
Riete
Votre code justement ne présente aucune faille. mathieu faisait référence à eval :
C'est donc potentiellement dangereux mais il est possible de limiter les risques en filtrant les données qui y sont utilisées (expression régulière ou autres casts par exemple).Code:
1
2
3
4
5
6
7 $test = "<"; eval("\$eval = $a $test 3;"); if ($eval) { // Condition OK } else { // Condition KO }
Merci du tuyau, même si cela ne correspond as tout à fait à ce que je voulais faire.
Je trouve le code avec eval pas très lisible à posteriori pour le cas ou la maintenance est nécessaire.
Mais il y a encore une question de culture personnelle qui m'interpelle. Pourquoi ce code serait il potentiellement risqué au niveau sécu?
Est ce en raison des possibilités de substituer la variable contenant le code a "evaluer" par un autre contenu malin?
Dans ce cas, cela me semble difficile puisque le code est exécuté au sein même du script sans appel extérieur.
OK, je ne suis pas un expert en sécu, mais petit à petit l'oiseau fait son nid :mouarf:
Bonsoir,
Rien de mieux que la doc PHP sur la fonction eval() ;)
Bonne soirée.