Autor | Zpráva | ||
---|---|---|---|
ald Profil * |
#1 · Zasláno: 26. 2. 2007, 18:28:06
Pouzivam na strankach k volani jednotlivych polozek menu klasicky pristup: index.php?page=neco.
Cast kodu index.php: include page.php Pry muze nekdo vlozit do stranek jakykoli cizi kod, dostat se na server a delat si tam co chce. index.php?page=http://neco.txt Nevite nekdo jak to zabezpecit? Diky |
||
nightfish Profil |
#2 · Zasláno: 26. 2. 2007, 18:38:28
switch ($_GET['page']) {
case "neco": include "neco.php"; break; case "cenik": include "cenik.php"; break; case "kontakt": include "kontakt.php"; break; ... ... } |
||
Pavel Prochazka.zde.cz Profil * |
#3 · Zasláno: 26. 2. 2007, 18:38:58
ja to delam asi takto:
function ukazclanek () { if(isset($_REQUEST["clanek"])){ $sBuffer=explode(";",$_REQUEST["clanek"]); $_REQUEST["clanek"]=$sBuffer[0]; $sBuffer=explode("=",$sBuffer[1]); if(isset($sBuffer[1])){ $_REQUEST[$sBuffer[0]]=$sBuffer[1]; } } unset ($sBuffer); if ((string)$_REQUEST["clanek"]<>'') $mujclanek=$_REQUEST["clanek"]; else $mujclanek="uvod"; if (is_file("./".$mujclanek.".htm")): $nazevclanku=$mujclanek.".htm"; require $nazevclanku; elseif (is_file("./".$mujclanek.".php")): if ($mujclanek<>"scripty/guestbook"){//toto zrusi nastaveni pozice v guestbooku kdy kliknu na jinou stranku... unset($_SESSION["od"],$_SESSION["do"], $_SESSION["odpoved"],$_SESSION["odpoved_nick"], $_SESSION["odpoved_datum"]); } $nazevclanku=$mujclanek.".php"; if (strstr($mujclanek,"download_pocitadlo") == false) { //inicializace parametru pri vlozeni pocitadla. Toto provest vzdy krome odskoku na administraci pocitadel. include "scripty/download_pocitadlo.php"; } require $nazevclanku; else: notfound($mujclanek); endif; } function notfound ($nazevclanku){ $sTitulek ="NOT FOUND --> 404 ERROR - www.prochazka.zde.cz"; include "zahlavi.php"; ?> <TABLE class=index cellSpacing=0 cellPadding=15 border=0> <TBODY> <TR> <TD class=indextitle> <DIV class=bot_left>NOT FOUND - 404 ERROR - www.prochazka.zde.cz</div> </TD> </TR> <TR> <TD class=indextext> <?php echo "<P> Litujeme, ale požadovaný dokument: <b>".$_SERVER["SERVER_NAME"]."/index.php?clanek=".$nazevclanku."</b> nebyl na serveru nalezen.</p>";?> <P> Pokud problemy přetrvávají, prosim kontaktujte autora <a href="index.php?clanek=kontakt">WEBu</a></p> <?php ZakonceniStranky(); } |
||
Pepik Profil * |
#4 · Zasláno: 26. 2. 2007, 22:36:18
Stačí předtim ověřit, zda soubor existuje u tebe na webu.... Pokud ne, zobrazí se chybové hlášení.
|
||
ald Profil * |
#5 · Zasláno: 26. 2. 2007, 22:50:14
Dik vsem, puvodne jsem myslel, ze bude existovat jednodussu reseni, ale uz to je.
Vypis casti index.php: $pages = array("aktuality/gb" => "Aktuality", "aktuality/help" => "Aktuality - Nápovìda", "aktuality/admin" => "Aktuality - Zmìna/Výmaz zprávy", "popis obce" => "Popis obce", ............... $PAGE = $_GET["PAGE"]; <title>bla bla <?php echo " - "; echo $pages[$PAGE]; ?> </title> <?php while( list($key, $value) = each ($pages)) { if ($key == $PAGE) { include ($PAGE.'.php'); break; } } ?> |
||
Alphard Profil |
#6 · Zasláno: 26. 2. 2007, 22:53:53 · Upravil/a: Alphard
while( list($key, $value) = each ($pages)) {
nebyl by lepší foreach :-) anebo ještě tépe array_key_exists http://cz.php.net/manual/cs/function.array-key-exists.php |
||
T2001 Profil * |
#7 · Zasláno: 26. 2. 2007, 23:51:35
|
||
Railbot Profil |
#8 · Zasláno: 26. 2. 2007, 23:53:55
Pokud includuješ stránku tím nejběžnějším způsobem (základní použití funkce include), tak ti touto cestou nikdo "hacknout" (ono je to spíš vložení cízho obsahu) stránky nemůže. Není jak.
|
||
Trixer Profil |
#9 · Zasláno: 27. 2. 2007, 10:48:20 · Upravil/a: Trixer
Hoj, ja to delam tak, ze neprirazuju promeny ale ze delam novou promenou a potom overuju, jestli ta promena existuje ( isset() ). Takze asi takto web.php/?neco. V kodu mam...
if(isset($neco)){ ....... }elseif(isset($neco2)){ }else { a sem kod kdyz si nekdo zada neco jinyho nebo nezada nic...} Pouzivam toto, ale nevim jestli je to taky bezpecny, nejak sem se o to nezajimal. Dik za komentare ;) |
||
ald Profil * |
#10 · Zasláno: 27. 2. 2007, 20:59:34
array_key_exists je urcite lepsi.
Pokud includuješ stránku tím nejběžnějším způsobem (základní použití funkce include), tak ti touto cestou nikdo "hacknout" (ono je to spíš vložení cízho obsahu) stránky nemůže. Není jak. pokud je na serveru vypnute registrer globals musim pouzit $_GET. |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0