Autor Zpráva
Zerog
Profil
Zdravim

videl jsem zajimavou ochranu pred php include. Nebylo to klasicke

"./".$pafe.".php"

ale neco ve smyslu:

"st_".$page.".php" a stranky vzdy byli st_galerie.php a tak ..prote se tam vzdy pridalo to st_ na zacatek.

A ja se ptam, je nejaky rozdil mezi ./ a st_ ve funkcnosti?
karbon
Profil *
"./" zajistí, že soubor musí být v aktuálním adresáři (tudíž nemůže být ze vzdáleného serveru), a "st_" zajistí, že název souboru bude muset začínat na "st_". Dobrá ochrana je také includovat pomocí case nebo několika podmínek (k jedné možnosti přiřadit jednu cestu includovaného souboru)
zefo
Profil *
neni to dobra ochrana, ale jedina 100% ... vsechni ostatni se daji obejit.

myslim ze na soom.cz je o tom clanek. a na stoyan.ic.cz taky.
DoubleThink
Profil *
"./" zajistí, že soubor musí být v aktuálním adresáři
Nezajistí.

./../../soubor.txt je o 2 úrovně výše.
TFSi
Profil
ale jedina 100%
Netvrdil bych. Stačí testovat řetězec na přítomnost zanků jako "/" nebo "." ...
peki
Profil
TFSi
Netvrdil bych. Stačí testovat řetězec na přítomnost zanků jako "/" nebo "." ...
Ani nie , skor by somto testoval na "./" lebo ak mas neaky script v inej zloske tak "/" je nevyhnutnost ...
krteczek
Profil
100% ochrana je že se porovnává to co jde z adresy s něčím jiným a pokud je to shodné teprve se provede include.
To něco jiné může být id článku nebo jméno článku, ad už jako klíče v databázi nebo v poli (array) a ta adresa by měla být v tom poli (databázi) jako položka, kterou teprve použijeme na includování (u db se prostě odpovídající článek vypíše).
Zerog
Profil
Diky za odpovedi

Jak obechcat tohle "./".$page."php" to jsem vedel, ale s tim st_ me nic nenapadalo tak jsem se zeptal ..

Diky ..
mila
Profil
if (preg_match('/w+/', $page)) ...

Nesnažte se hledat všechny špatné znaky, ale vyjmenujte ty dobré.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: