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

| Rubrika Php / mysql

Diskusia k článku

Ako ochrániť includované PHP súbory?Zobraziť článok

Kofan
Dátum a čas 11. 07. 2011, 08:45 E-mail 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
Dátum a čas 19. 03. 2011, 16:30 E-mail 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
Dátum a čas 24. 10. 2009, 20:36 E-mail 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
Dátum a čas 30. 08. 2008, 17:54 E-mail 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
Dátum a čas 27. 08. 2008, 09:21 E-mail 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
Dátum a čas 27. 08. 2008, 00:26 E-mail 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
Dátum a čas 26. 08. 2008, 13:29 E-mail dirt [a] seznam.cz

Ta druhá metoda je opravdu dobrá a čistá ;) hezký článek

Naspäť naspäť

Pridať komentár

Koľko je na ruke prstov?

Náhľad článku

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.

RSS