| 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äť
prispieť do diskusie [7]
Vyhľadávanie
Posledných 5 komentárov
Pridať komentár / čítať diskusiu
-
Kofan: podla mna je htaccess lepsie riesenie...
-
camo: Je mi jasné, že aj toto je...
-
pog: na druhou stranu, druhá metoda umožňuje includovat...
-
Phoenix: Radím použiť ten druhý spôsob. Spravte si...
-
tomas masek: Ano aj to moze byt fajn, skus...
Viac z rubriky
Automatické generovanie formulárov z MySQL
Automatický prevod texu na hyperlink
Cachovanie do HTML súboru
Cachovanie s pomocou funkcií serialize/unserialize
Čiernobiele obrázky v PHP
Dynamická tvorba URL
Fulltext ako názov stĺpca v tabuľke
Getcwd – Ako ľahko získať absolútnu cestu
Import z Excelu do MySQL databázy
Maximálny timeout vykonávania SQL skriptu
Microtime – rýchlosť načítania stránky
Odstránenie diakritiky v PHP pomocou iconv()
Overovanie a kontrola formulárov v PHP
Parsovanie XML súboru v PHP
PHP a zachytenie nedoručených mailov
PHP funkcia implode
Porovnávanie a dátovy typ DATE
Práca so súbormi pri zapnutom safe_mode
Prihlasovanie uživateľa prostredníctvom $_SESSION
Real-time kontrola e-mailovej adresy AJAX-om
Spracovanie dátového typu ENUM do HTML selectu
Strpos a offset – nájdenie výskytu znaku v reťazci
Tip: Generovanie PDF súborov
Tip: jednoduché šifrovanie a dešifrovanie v PHP
Tip: správne includovanie súborov
Ukladanie jazykových verzií statických textov
Veľmi jednoduchý návod na pekné URI
Vkladanie obrázkov do databázy
Výber záznamov začínajúcich číslom
Vyčistenie viacrozmerného poľa
Vyhľadávanie, pekné URI a diakritika
Vypísanie abecedy v PHP
Využívanie unikátnych kľúčov v MySQL databáze
Zaradenie jednej položky do viacerých kategórií
Zistenie hodnoty ďalšieho ID – autoincrement
Zložené MySQL dotazy – LEFT JOIN
Zvýrazňovanie syntaxe kódu – GeSHi
Pridať komentár



