Non penso che questo consentirà a qualcuno di includere direttamente /etc/passwd
, ma ci sono ancora molti problemi da risolvere. Un utente malintenzionato potrebbe essere in grado di:
- Attiva un DoS includendo il file stesso. (Dato che stai usando include, non include include_once, continuerà a includere in modo ricorsivo lo stesso file.)
- Includi script arbitrari sul tuo sistema, come copie di phpinfo, perdite di informazioni sensibili.
- Includi codice arbitrario se sono in grado di caricare file con estensioni definite dall'utente.
Tieni presente che se hai permesso allow_url_include = 1 nel tuo php.ini, ti stai aprendo per una vulnerabilità di inclusione dei file remota .
Un approccio migliore prevede la whitelist delle tue pagine o, almeno, l'utilizzo di qualcosa come basename()
o realpath()
+ dirname()
per impedire attacchi di directory trasversali.