Mám klasicky stránku index.php s funkcí na includování článků (index.php?topic=stranka). Celou (jen index.php) jí mám zaheslovanou pres SESSION... Nevím ale jak zabezečit aby includované stránky nešli samostatně zobrazit. Např když jsem na stránce "www.jmenodomeny.cz/index.php?topic=stranka" tak aby člověk nemohl zobrazit stránku www.jmenodomeny.cz/stranka.php", která je ve stejné složce jako index.php. nechce se mi do každé stránky kterou includuji dávat nějaké kontroly... Napadlo mě jedině že bych všechny (kromě index.php) naházel do adresáře a tomu odebral práva číst psát a zapisovat. Nevím jak se toto má správně řešit. Uvítám věechny vaše odpovědi.
Fórum › PHP
Zabezpečení přístupu
Ten postup čo si načrtol je ok. Aby si vedel zakázať zobrazenie súboru, musíš trocha rozumieť fungovaniu web servera, ktorý používaš. (predpokladám že Apache) Najjednoduchšie to bude premiestnením všetkých súborov do jedného adresára. Apache-u potom povieš, že do tohto adresára je prístup zakázaný. PHP však bude súbory môcť čítať naďalej.
Je viac možnosti, ako prístup zakázať:
a) v konfiguračnom súbore httpd.conf:
<directory "cesta/k/danemu/adresaru">
..
Deny from all
..
</directory>
Free hostingy ale neumožnujú prístup do tohto súboru. A nieje to práve najpriehľadnejšie riešenie - ak by si takto chcel nastavovať rôzne parametre pre množstvo rôznych adresárov, bol by to poriadny bordel..
b) Existuje aj možnosť konfigurovať správanie sa jednotlivých adresárov (napríklad aj prístup k nim) pomocou maličkých textových súborov, väčšinou zvaných ".htaccess". Vytvor tento súbor v adresári, do ktorého chceš zakázaťprístup a napíš doň len jeden riadok:
.htaccess
deny from all
Môžeš ísť na to opačne. Maj viac súborov, každý bude mať svoju adresu (www.jmenodomeny.cz/index.php, www.jmenodomeny.cz/stranka.php, ...) a každý súbor bude na začiatku obsahovať:
require "./pristup.php" ten súbor sa tak bude spracúvať pri každom súbora a postará sa o všetko, čo treba (sessions, ...).
no, a nebo treba pozmenit strukturu souboru a treba v nich definovat funkci... kterou potom budes volat... -> ale ten predchozi zpusob je lepsi.. ;)
To Prog. : Dík za odpovědi.. Jen by mě zajímalo, když přistup zamítnu pro danou složku jestli se to projeví i pro podsložky a nebo jestli se oprávnění nastavuje zvlášť. A druhá otázka: Předpokládám že toto jde nastavit na všech komerčních webhostingech.
To D-Fox : na vsechny otazky odpoved je ano ;)
alebo môžeš použiť metódu, ktorú používam aj ja na oncludovanie modulov, aby moduly v mojom systéme nemohlii byť načítané samostatne:
na začiatku súborku, ktorý ide moduly includovať a má na to právo definuješ konštantu
DEFINE("NAZOV",true);
a na začiatku každého modulu overíš či daná konštanta bola definovaná a ak nie tak nezobrazí obsah
if (NAZOV != true){die("NEPOVOLENÝ PRÍSTUP");}
http://jakub.lajmon.name
njn, nakoniec som si všimol že aj ja to tak používam, ale to som tu len rýchlo napísal, no pointa je rovnaká :) ...
http://jakub.lajmon.name
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Zabezpeceni slozky — založil fnwin
VB c Exceli zabezpeceni 2 — založil NRG
Apache zabezpečení — založil kucchem
Include - zabezpečení — založil RolandN
Zabezpečení htmlspecialchars na galerii — založil TyNikdy
Moderátoři diskuze