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

Tags: , ,

3 Responses to “Jak uchránit textový soubor na serveru”

  1. Cr says:

    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?

  2. Littlemaple says:

    Já tomu říkám workaround :) . Řeší to výše zmíněný problém a jako konfigurák to funguje.

  3. Martin Janda says:

    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 ftp. To mi přijde nejlepší.