Voglio testare se un percorso dato dall'utente andare giù come:Regex per verificare se un percorso solo scendere
my/down/path
al contrario di:
this/path/../../go/up
per motivi di sicurezza.
Ho già fatto questo:
return (bool)preg_match('#^([a-z0-9_-])+(\/[a-z0-9_-])*$#i', $fieldValue);
Ma l'utente dovrebbe essere consentito di utilizzare l''.'
nel suo percorso (come: my/./path
, che non è utile ma lui può) e non so come considerare esso.
Sto quindi cercando una regex sicura per verificare questo.
Grazie
EDIT: Dopo aver visto le risposte, sì sarebbe bene se il controllo di prova se il percorso vero e proprio (rimozione '.'
e '..'
) è un percorso verso il basso.
Ho aggiunto il tag [sicurezza] che dovrebbe ottenere la domanda più attenzione e, si spera, forse da qualcuno che conosce una buona libreria di attraversamento del percorso PHP. Come suggerisce la mia risposta, questo è un problema non banale. –