| Rubrika Php / mysql
Diskusia k článku
Ako ochrániť includované PHP súbory?
Kofan
11. 07. 2011, 08:45
Htaccess - kto nevie
podla mna je htaccess lepsie riesenie (vsetky includovane subory vlozime do adresara includes. tam vytvorime novy subor .htaccess, ktory bude obsahovat "deny from all")
camo
19. 03. 2011, 16:30
camo [a] tym.sk
Je mi jasné, že aj toto je starší článok, ale možno mi ešte niekto odpovie.
Bol tu spomenutý .htaccess. Nieje to lepšie riešenie?
pog
24. 10. 2009, 20:36
pog [a] webcorp.cz
na druhou stranu, druhá metoda umožňuje includovat libovolný soubor z libovolného místa a jediný předpoklad je, že bude definovaná konkrétní konstanta. Což může být provedeno souborem, který includuje.
Phoenix
30. 08. 2008, 17:54
phoenix [a] pportal.org
Radím použiť ten druhý spôsob. Spravte si to ako dve funkcie. Jedna ktorá bude definovať konštantu a druhá ktorá bude kontrolovať tu konštantu. Ja to tak používam a je to supr ;)
tomas masek
27. 08. 2008, 09:21
masek [a] altamira.sk
Ano aj to moze byt fajn, skus byt ale konkretnejsi? Myslis trebars ochranu nejakeho adresra, kde su ulozene inkludovane subory?
Max
27. 08. 2008, 00:26
max.lv [a] centrum.sk
A prečo nepoužiť htaccess. Je rýchlejšie a netreba na začiatok každého súboru dávať podmienku.
Eclipse
26. 08. 2008, 13:29
dirt [a] seznam.cz
Ta druhá metoda je opravdu dobrá a čistá ;) hezký článek
naspäť
Pridať komentár
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.

