Citat:
Originalno napisao dinke
A sta ako user posalje nesto tipa page = ../../../foo ? ladno ce taj fajl traziti ispod page dira o kome pricas. Sve u svemu, vrlo insecure.
|
100% si u pravu. Rupčaga!
PHP kôd:
if(!preg_match("/^([a-zA-Z0-9_]*)$/", $page)) {
die('Invalid file name');
} // if
Ili još jednostavnije:
PHP kôd:
if(strpos($page, '.') !== false) {
die('Invalid page name');
} // if
Citat:
Originalno napisao ivanhoe
ma bre Ilija sta fali tome da imas niz u kome pisu sve stranice koje je moguce inkludovati...ccc, sto ste bre toliko lenji...ova omladina, sve bi automatski
em je znatno sigurnije, em kad otvoris kod posle x meseci znas odmah koje strane se ukljucuju za koji ulazni parametar, bez da trazis po direktorijumima i tumacis mogucnosti...
|
Ručno moraš da edituješ fajl ako nešto dadaš što je ponekad smor. Oba će raditi posao bez ikakvih problema, tako da je sve manje više stvar ukusa... Ipak više volim kada skripta radi veći deo prljavog posla za mene.
Btw, ja bih od ovoga napravio klasu
Prima dva parametra - odakle da pokupi ime stranice i gde su smeštene stranice. Dokle god je interfejs klase čitak bole me uvo šta je ispod haube. Tipa:
PHP kôd:
$dispatcher = new Dispatcher(dirname(__FILE__) . '/pages');
$dispatcher->dispatch(@$_GET['page']);