Autor | Zpráva | ||
---|---|---|---|
Erwinero Profil |
#1 · Zasláno: 7. 11. 2010, 19:00:45
Je php príkaz unlink možnou verziou hacku. Skúšal som to, a keď som taký príkaz dal do svojej návštevnej knihy, vymazalo mi to daný súbor.
Dá sa proti tomu brániť? |
||
Keeehi Profil |
#2 · Zasláno: 7. 11. 2010, 19:28:55
Erwinero:
„Dá sa proti tomu brániť?“ Ano, nesmíš dovolit, aby někdo neoprávněný mohl spustit tuto funkci. |
||
Augustus Profil |
#3 · Zasláno: 7. 11. 2010, 19:34:36
Keeeihi, ale to sa dá rýchlo obísť.
Zadáš adresu ochranného súboru (alebo premennej) , a potom ťa to prehodí na normálnu časť a už to zapisuješ. Alebo tam dáš ssesions. |
||
Nox Profil |
#4 · Zasláno: 7. 11. 2010, 19:36:36
To je snad možný jen když používáš eval(), ne? Aspoň vidiš, že to dělat nemáš ;)
|
||
Keeehi Profil |
#5 · Zasláno: 7. 11. 2010, 19:36:47
Augustus:
A mohl by jsi uvést konkrétní příklad? Na to jsem opravdu moc zvědavý. |
||
Darker Profil |
#6 · Zasláno: 7. 11. 2010, 19:51:15
Doporučuju s daty z návštěvní knihy pracovat přes file_get_contents() a file_put contents().
Pak nic nehrozí. |
||
Keeehi Profil |
#7 · Zasláno: 7. 11. 2010, 19:54:47
Ona ani funkce unlink není strašná ani nebezpečná. Jen se k ní musí pustit jen ti oprávnění.
|
||
Darker Profil |
#8 · Zasláno: 7. 11. 2010, 21:47:35
No a jak bys to zaonačil, aby některý phpskript unlinkovat mohl a jiný ne?
|
||
Keeehi Profil |
#9 · Zasláno: 7. 11. 2010, 23:10:18
Darker:
Teď tě nějak nechápu, proč by jeden mohl a jiný ne. A jestli myslíš to ošetření práv tak nějak takto: <?php $user_id // v této proměnné předpokládám id přihlášeného uživatele // když je uživatel administrátor, bude mít v DB v právech 1, pokud to administrátor není, tak 0 $result=mysql_query("SELECT prava FROM uzivatele WHERE id=$user_id"); if(mysql_result($result,0)==1){ unlink("historie.txt"); } ?> |
||
TomášK Profil |
#10 · Zasláno: 7. 11. 2010, 23:16:05
Nejde jen o funkci unlink, pokud může skript manipulovat se soubory, mohl by např. zpřístupnit z webu zdrojové kódy, ve kterých pravděpodně bude heslo k databázi a určitě páchat i spoustu dalšího zla. Spouštění cizích skriptů je nebezpečné - při troše neopatrnosti/neznalosti může snadno skončit dírou v systému. Řešení je mít nastavená práva na souborech (všech v systému) a spouštět skripty jen s takovými právy, které mají mít.
|
||
Darker Profil |
#11 · Zasláno: 8. 11. 2010, 20:02:45
No já jsem předpokládal, že jeho NK má tu díru, že vkládá obsah pomocí include a umožňuje tak spouštění skriptů které někdo zvenčí přidal...
|
||
Keeehi Profil |
#12 · Zasláno: 8. 11. 2010, 20:45:14 · Upravil/a: Keeehi
Darker:
„má tu díru, že vkládá obsah pomocí include“ V include není žádná díra. Je spousta webů, kde je include (a podobné) použito, přesto problém se zabezpečením nemají. Záleží jen na programátorovi, jak si umí vstupy ošetřit. Třeba se dá název souboru kontrolovat oproti nějakému whitelistu, nebo udělat něco takového: index.php?page=druha <?php $page=preg_replace("~[^a-zA-Z0-9]~","",$_GET["page"]); if(file_exists("/include/$page.php")) include("/include/$page.php"); else include("/include/404.php"); ?> |
||
Časová prodleva: 13 let
|
0