Jak uchránit textový soubor na serveru
Dnes jen krátce malý trik, jak uchránit soubory textového typu na
serveru. Pokud si na www.example.com nahraji nějaký
velikost-poprsi.txt, pak si jej logicky každý může přečíst
na adrese www.example.com/velikost-poprsi.txt. Někdy je to ale
nežádoucí – např. pokud si uchováváme konfigurační
data aplikace v XML nebo v textovém souboru (třeba INI soubor, zpracovávaný
pomocí parse_ini_file).
Nastavení serveru přes .htaccess
Konfigurační velikost-poprsi.txt si například dáme do
nějakého adresáře, do něhož umístíme i .htaccess soubor s obsahem
deny from all
Server pak všechny vnější požadavky na soubory ve složce zamítne (HTTP Error 403 – Forbidden).
Nemáme .htaccess
Co když nemáme nastavení přes .htaccess k dispozici? Použijeme malý
trik, kdy soubor přejmenujeme na velikost-poprsi.php a
znemožníme přístup zvenčí okamžitým ukončením vykonávání
skriptu hned na začátku. Aplikace soubor načítá lokálně, takže
jí to nijak nemusí vadit, pokud samozřejmě PHP kód řádně
zakomentujeme.
; <?php exit; ?>
leve = A
prave = C
Pro XML by mělo fungovat něco podobného.
<!-- <?php exit; ?> -->
<conf>
<const name="leve">A</const>
<const name="prave">C</const>
</conf>
Samozřejmě, pokud použijete XML deklaraci, přijde vám na pomoc také parse error.
Nelze se však na něj spoléhat a určitě je dobré vše
pojistit oním PHP v komentáři, protože parse error může, ale nemusí
nastat (nedojde ke kolizi, když má vaše PHP direktiva
short_open_tag hodnotu 0).
Cr 3. 2. 2008 v 15:14
To je tak trochu prasárna už z principu, rvát na začátek nějakého konfiguračního ini souboru nějaké, byť zakomentované, , ne?
Littlemaple 3. 2. 2008 v 17:48
Já tomu říkám workaround :) . Řeší to výše zmíněný problém a jako konfigurák to funguje.
Martin Janda 4. 2. 2008 v 16:33
Ze zkušenosti s asi 5 hostingy měli 4 z nich oblast, která nebyla přístupná přes http, jen přes ssh nebo přes http://ftp. To mi přijde nejlepší.