Autor Zpráva
superman
Profil *
mam takyto riadok:

require "./$stranka.php3";

ako to ostreit aby niekto nezadal $stranka=../../dolezity_adresar

staci ked nahradim v $stranka vsetky lomitka??


dikez
Casero
Profil
nějka nechápu..no to co nechceš davat obyč. uživatelům zadej na heslo...a nebo dej takovej nazev kterej neuhadnou
Anonymní
Profil *
no v prvom rade nesmie dojst aby parameter funkcie require bol uzivatelsky modifikovatelny
srigi
Profil
$pokus = array (
"./inc/page01.php",
"./inc/page02.php",
"./inc/page03.php",
"./inc/page04.php",
"./inc/page05.php"
);

require($pokus[3]);
require($pokus[intval($_GET['page'])]);
petr6
Profil
//Promennou $stranka nechas

$file=array("stranka1"=>"stranka1.php","stranka2"=>"stranka2.php");

if(array_key_exists($stranka,$file) && file_exists($file[$stranka])):
require $file[$stranka];
else:
require "error.php";
endif;//Pokud nekdo zada do $stranka neco, co neni jako klic v array $file nebo ten soubor nebude existovat, tak se vypise soubor error.php. Doufam, ze chapes
superman
Profil *
dik za rady, no je pracne dat do pola nazvy 50 suborov...


nemate nieco jednoduchsie??
tiso
Profil
superman
Teda sorry, ale ak toto je prácne, tak potom fakt neviem čo chceš... Pokiaľ to chceš ošetriť tak si musíš dať bacha na to čo človek napíše...
btw. keď máš web s 50 stránkami máš tam použitú aj databázu? Alebo je obsah rozhádzaný v tých súboroch?
superman
Profil *
btw mam db asi so 10 tabulkami no o to nejde, pretoze tych 50 suborov su len scripty...
tie co maju vystup tych je menej ale aj tak...
Joker
Profil
dik za rady, no je pracne dat do pola nazvy 50 suborov...
Tak když už jste zvolil takovéto řešení... ;)

Já bych přímo název souboru přes GET neposílal. Udělejte si pole anebo to uložte do databáze.
Mimochodem, spíš než soubor z jiného adresáře bych se bál, že někdo vloží nejakyweb.cz/nejakyskript.php do kterého si napíše cokoliv bude chtít.
superman
Profil *
Joker: teoreticky, co by v tom scripte mohlo byt?
srigi
Profil
Joker: teoreticky, co by v tom scripte mohlo byt?
sice to nie je presne ono, ale ako priklad to moze posluzit:

http://www.uvm.sk/show.php?page=/etc/passwd
Joker
Profil
superman
Trochu fantazie... s možností spustit si na Vašem webu mnou napsaný PHP skript mám Váš web defacto pod kontrolou.
S trochou štěstí si zjistím přihlašovací údaje k databázi, pokud jste se před vložením mého skriptu připojil k databázi, můžu posílat dotazy do databáze.
No a když mě hraní si přestane bavit, můžu napsat skript, který dropne databázi a vymaže celý obsah webu.

ad srigi, to je přesně ten důvod, proč zobrazování stránek dělat zásadně takto:
nejakyweb.cz/index.php?page=1

...a index.php se podívá do databáze a znistí si příslušný soubor.
nigga
Profil *
pokud jste se před vložením mého skriptu připojil k databázi, můžu posílat dotazy do databáze

presvdecili si ma, idem to opravit
Toto téma je uzamčeno. Odpověď nelze zaslat.