Add to Google Reader or Homepage Prihlásiť sa k odberu RSS

| Rubrika Php / mysql

Ako ochrániť includované PHP súbory?

Každý súbor, ktorý je do iného súboru includovaný by mal byť nejakým spôsobom ošetrený proti priamemu otvoreniu. Pokiaľ do stránky, prístupnej iba pre prihlásených užívateľov, includujeme iný súbor, zväčša už v ňom znova neoverujeme či je užívateľ prihlásený – overenie nastáva v hlavnom súbore. Problém by nastal, keby bol tento includovaný súbor otvorený priamo. „Útočník“ by sa mohol dostať k funkcionalite dostupnej len pre prihlásených. Možností ochrany je viacero. Jednou z nich je kontrolovanie URI na obsah daného reťazca, niečo ako napríklad:

if (strpos($_SERVER['PHP_SELF'], "index.php") === false) { die('Neautorizovaný prístup'); exit; }

Druhou možnosťou a podľa môjho názoru podstatne lepšou a čistejšou je využitie konštánt. V hlavnom súbore si definujeme koštantu napríklad:

define('protectInclude','1');

Potom každý includovaný súbor musí obsahovať overenie, či je konštanta protectInclude definovaná.

if (!defined('protectInclude')) { die('Neopravneny pristup!'); exit; }

Ak nie je, skript sa ukončí chybovou hláškou (prípadne akokoľvek chcete), ak je, pokračuje sa v spracovávaní kó­du.

Tomáš Mašek

Naspäť naspäť Pridať komentár k článku prispieť do diskusie [7]

Vyhľadávanie

v názvoch článkov v textoch článkov

Pridať komentár

Koľko je na ruke prstov?

RSS