Est-ce que quelqu'un connaît un PHP RegEx pour autoriser uniquement les chemins relatifs, pas absolus? Par exemple, j'ai une fonction AJAX qui soumet cette valeur à mon script PHP "some-directory/another-directory/some-file.php".Débutant RegEx Question - PHP RegEx pour autoriser uniquement les chemins relatifs (pas les URL)
Mon script PHP inclut alors ce fichier .... include ($ some-php-document);
Je ne veux pas un pirate pour être en mesure d'utiliser ma fonction AJAX pour présenter quelque chose comme: « http://www.malicious-website.com/malicious-script.php »
Dans mon document PHP Je voudrais faire quelque chose comme:
<php>
$some-php-document = $_POST["some_value_submitted_via_ajax"];
//if $some-php-document is a URL (not a relative path to a file),
//then $some_php_document = null
//how can I use a php regex to accomplish the above?
</php>
Comment puis-je faire ceci?
Ou, laissez-moi savoir s'il existe des solutions plus sécurisées.
Les utilisateurs du programme doivent être en mesure de spécifier un chemin, donc je ne sais pas un bon moyen de vérifier. Ce que j'ai fait à la place était d'utiliser votre exemple et d'inclure l'instruction include dans ob_start() et ob_end clean(). De cette façon, si un pirate inclut un fichier sensible qui fait écho à du contenu, le contenu renvoyé sera détruit. S'il vous plaît laissez-moi savoir si vous avez une meilleure idée. – edt