oh mann, gehts hier um die neue website des nsa, weil hier wild über noch nicht entdeckte lücken in php-funktionen spekuliert wird?
die preg_match-variante halte ich für sehr sicher. im gegensatz zum posix ereg(), weil diese funktion nicht binary-safe ist, womit man dann schon die endung php aushebeln könnte. wie's mit basename aussieht weiß ich nicht.
die einwände von wegen "langsam" halte ich ehrlichgesagt für lächerlich. wieviele µ-sekunden beträgt denn die differenz bei dem kurzen string
realpath() könnte man auch noch auf den pfad ansetzen und dann vergleichen, ob er innerhalb des erlaubten include-pfades liegt.
und natürlich noch die klassische whitelist-überprüfung.
so, wenn du jetzt alles kombinierst, ist es ziemlich sicher gegen 0-day-exploits
die preg_match-variante halte ich für sehr sicher. im gegensatz zum posix ereg(), weil diese funktion nicht binary-safe ist, womit man dann schon die endung php aushebeln könnte. wie's mit basename aussieht weiß ich nicht.
die einwände von wegen "langsam" halte ich ehrlichgesagt für lächerlich. wieviele µ-sekunden beträgt denn die differenz bei dem kurzen string
realpath() könnte man auch noch auf den pfad ansetzen und dann vergleichen, ob er innerhalb des erlaubten include-pfades liegt.
und natürlich noch die klassische whitelist-überprüfung.
so, wenn du jetzt alles kombinierst, ist es ziemlich sicher gegen 0-day-exploits
Kommentar