Jak uchránit textový soubor na serveru


Honza Javorek

Upozornění! Tento článek vyšel před více než 2 lety. Můžete si jej přečíst v rámci zkoumání minulosti, ale přepokládejte, že dnes se Honza již nemusí s obsahem ztotožňovat.

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).


Honza Javorek

Honza je programátor. Od roku 2011 buduje českou komunitu kolem jazyka Python. V současnosti pomáhá hlavně s propagací aktivit, jako jsou PyLadies, Pyvo, nebo PyCon CZ. Přes den jej najdete v Apiary, kde se stará o Dredd, framework na testování API. Sem tam ho můžete potkat, jak přednáší na srazu nebo na konferenci.




Komentáře