Przechowanie danych w plikach tekstowych

Często, zwłaszcza mniejsze serwisy zamiast bazy SQL używają plików jednorodnych do przechowywania danych. Najczęściej jest to zwykła treść strony (artykuły, newsy), niestety zdarza się także że są tam przechowywane loginy i hasła użytkowników serwisu. Osoba znająca nazwę tego pliku, może wyświetlić jego zawartość w przeglądarce internetowej. Aby uniemożliwić dostęp do plików należy je przechowywać poza drzewem katalogów. Najczęściej wygląda to tak że logując się do serwera FTP, wszystko co jest w katalogu www jest dostępne z poziomu przeglądarki internetowej, a wszystko co znajduje się wyżej od niego jedynie poprzez klienta FTP. Jeśli z plikiem łączyliśmy się w taki sposób:

$plik = fopen(“users.txt”, ‘rb’);

to po przeniesieniu go poza katalog www (wyżej od niego), będzie trzeba łączyć się w taki sposób:

$plik = fopen(“$_SERVER[‘DOCUMENT_ROOT’]/../users.txt”, ‘rb’);

gdzie zmienna $_SERVER[‘DOCUMENT_ROOT’] wskazuje na podstawowy element drzewa katalogów serwera WWW (czyli najczęściej katalog www), a “..” wskazują na katalog nadrzędny. Dzięki temu prostemu sposobowi uniemożliwimy dostęp do plików tekstowych przez WWW w sposób inny niż dołączony przez nas interfejs (skrypt).

Jeśli mamy możliwość używania plików .htaccess można też utworzyć specjalny katalog do przechowywania plików tekstowych, a w nim wpisać do pliku .htaccess

Order Allow,Deny
Deny from All

Skrypty będą mieć swobodny dostęp do tego katalogu, natomiast serwer zablokuje próbę wyświetlenia jego zawartości poprzez przeglądarkę internetową.

Kolejnym sposobem jest zapisanie plików z rozszerzeniem *.php, i umieszczenie treści pomiędzy znacznikami:

<? /*
//tresc
*/ ?>

Serwer potraktuje wtedy wszystko co jest między tymi znacznikami jako komentarz PHP i w przeglądarce wyświetli pustą stronę.

W tym miejscu warto dodać że cześć webmasterów pliki includowane zapisuje z rozszerzeniem *.inc (skrót od include), niestety niektóre serwery po wpisaniu bezpośredniego adresu takiego pliku do przeglądarki wyświetlają jego zawartość, dlatego także w tym przypadku należy korzystać z porady zamieszczonej w tym punkcie.

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA
Change the CAPTCHA codeSpeak the CAPTCHA code
 

This site uses Akismet to reduce spam. Learn how your comment data is processed.