Tester la présence d'une chaîne de caractères dans un autre
Posté : 17 avr. 2009, 12:14
Bonjour,
Je voudrai vérifier qu'une page externe contient l'appel à un fichier... Plus précisément, je veux m'assurer que la page target.php contient l'appel include('script.php'); via le fichier trigger.php.
Le but est d'empêcher la suppression ou la modification de cet include, pour des raisons de sécurité.
Après plusieurs dizaines d'essai (!), j'ai abandonné l'idée de recourir à une epxression régulière : sa syntaxe me pose un problème liée, je pense, à l'usage des apostrophes (!). De plus, le manuel Php dit que preg_match est lent, et je veux lancer quatre test successifs.
Je me suis donc rabattu sur la fonction strpos à utiliser dans trigger.php avec une syntaxe de forme :
J'ai essayé avec strstr, mais je me heurte au même écueil.
Merci pour votre aide.
Cordialement,
Pickwick
Je voudrai vérifier qu'une page externe contient l'appel à un fichier... Plus précisément, je veux m'assurer que la page target.php contient l'appel include('script.php'); via le fichier trigger.php.
Le but est d'empêcher la suppression ou la modification de cet include, pour des raisons de sécurité.
Après plusieurs dizaines d'essai (!), j'ai abandonné l'idée de recourir à une epxression régulière : sa syntaxe me pose un problème liée, je pense, à l'usage des apostrophes (!). De plus, le manuel Php dit que preg_match est lent, et je veux lancer quatre test successifs.
Je me suis donc rabattu sur la fonction strpos à utiliser dans trigger.php avec une syntaxe de forme :
$text = "include('script.php');";
$find = strpos(file_get_contents('target.php'),$text);
if ($find === FALSE)
{
echo 'NOK';
}
else
{
echo 'OK';
}
Hélas, si la chaîne est modifée par exemple mise en commentaires avec //include('script.php'); ou /*include('script.php');*/, strpos renvoie TRUE, et ce problème me chagrine.J'ai essayé avec strstr, mais je me heurte au même écueil.
Merci pour votre aide.
Cordialement,
Pickwick