Ochrana souboru config.ini

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
David Grudl
Nette Core | 8082
+
0
-

Do souboru config.ini se často ukládají velmi citlivé informace, jako jsou třeba přístupové údaje k databázi včetně hesla. Je proto potřeba dbát zvýšené opatrnosti nad zamezením přístupu k němu.

Nejsnažší řešení je takové, že soubor umístíte do adresáře (např.) app, který je z prohlížeče nedosažitelný. Tj. je mimo kořenový adresář webu. Pokud tohle váš hosting neumožňuje, ani na požádání, tak jej změňte. Existují mraky lepší hostérů.

Nicméně i adresář app umístěný v adresáři webu a tedy z prohlížeče dosažitelný lze chránit. Nejlépe pomocí konfiguračních pravidel, které uložíme do souboru .htaccess ve složce app:

Order Allow,Deny
Deny from all

Někteří hostéři nabízejí jiné způsoby ochrany, například v administraci. Vždy zkontrolujte, zda nelze váš konfigurační soubor na adrese např. http://example.com/app/config.ini stáhnout.
Pokud hostér nenabízí žádný způsob ochrany, zvolili jste špatného hostéra a nemáte jinou možnost, než jej změnit. Dobrá zpráva je, že to nebolí a zabere jen málo času.

Teoreticky je možné znepřístupnit soubor config.ini i tak, že jej přejmenujete na config.ini.php a na začátek vložíte řádek

; <?php

ale k tomuto se nikdy nesnižujte. Potřebujete přece čistým způsobem znepřístupnit celý adresář app, nikoliv utajit obsah jednoho souboru výměnou za generování fatal error.

(pokud tohle všechno váš hostér umožňuje, avšak blokuje funkci ini_set, neváhejte ani na chvíli a změňte jej)

phx
Člen | 651
+
0
-

David Grudl napsal(a):

ale k tomuto se nikdy nesnižujte. Potřebujete přece čistým způsobem znepřístupnit celý adresář app, nikoliv utajit obsah jednoho souboru výměnou za generování fatal error.

Osobne bych volil spise toto nez fatal error

; <?php die(); ?>

Ale stale to neni ciste. Radeji zmenit hosting… :)