PHP funkce include() a bezpečnost
Zdroj: SOOM.cz [ISSN 1804-7270]
Autor: rytir_s_plnovousem
Datum: 4.6.2006
Hodnocení/Hlasovalo: 0/0
Zkušení webmastři a hackeři určitě vědí, co všechno lze nepáchat nesprávně napsanou funkcí include(). V tomto článku se nebudu zabývat tím, jak tuto funkcni zneužít, ale jak ji správně zabezpečit.
Zkušení webmastři a hackeři určitě vědí, co všechno lze napáchat nesprávně napsanou funkcí include(). V tomto článku se nebudu zabývat tím, jak tuto funkcni zneužít, ale jak ji správně zabezpečit.
Předpokládám znalosti HTML, takže vytvořit jednuduchou šablonu by neměl být problém - vytvoříme si menu a vedle něj bude místo pro samostatný obsah - místo něj přijde tento skript:
<?php
//pokud jsme z URL dostali pozadavek na stranku,
//pokusime se ji zobrazit
if(!empty($_GET['page'])) {
//osetrime retezec proti pripadnym pokusum o hacking
$main_page = eregi_replace('[^0-9a-z\-\_]', '', $_GET['page']);
//zobrazime pozadovanou stranku
switch ($main_page) {
default: include('includes/home.php'); break;
case "home": include('includes/home.php'); break;
case "articles": include('includes/articles.php'); break;
case "downloads": include('includes/downloads.php'); break;
}
}
//jinak zobrazime vychozi
else include('includes/home.php');
?>
Počítám s tím, že includované soubory opravdu existují, jinak určitě není problém si doplnit podmínku ;) Tento skript je prakticky neprůstřelný, možná pro některé je ošetřování řetězce zbytečné, ale určitě to přidává na jistotě...
by rytir_s_plnovousem