Henryk Plötz: Sicherheitsrisko

Beitrag lesen

Moin,

if(!preg_match('#(\w+/)*\w+.\w+#',$incl))
  $incl='incl/news.inc';
lässt nur noch 'übliche' Dateinnamen durch, sonst wird eine Standard Datei eingebunden.

Also mein PHP matcht das auch hervorragend auf http://bla.blubb/foo weil du vergessen hast es zu verankern. Und weil sich bei solchen regulären Ausdrücken immer wieder gern Fehler einschleichen, würde ich eher zu $incl = basename($incl); raten und nur Namen im aktuellen (bzw. einem festen anderen) Verzeichnis zulassen. Das ist vergleichsweise narrensicher (und wenn da ein Fehler drin sein sollte, ist er von den PHP-Programmieren).

--
Henryk Plötz
Grüße aus Berlin
~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~