1   2   3   4   5   6   7   8 

Obsługa błędów 404 Not Found w Apache/PHP. Przewodnik

7. Usuwanie dostępu do plików

Jeśli skrypt składa się z kilku plików PHP dołączanych instrukcją require_once, to należy pamiętać o tym, by żadne skrypty zawierające tajne informacje nie były dostępne w ramach usługi WWW. Jeśli w pliku db.inc zapiszemy hasło dostępu do bazy danych:

$link = mysql_connect('localhost', 'appadm', 'tajnehaslo');

a plik umieścimy w folderze include/, to wystarczy użyć adresu:

http://example.net/include/db.inc

by poznać dane konta appadm.

Jeśli to tylko możliwe, to wszystkie biblioteki, szablony i pliki z danymi należy przenieść poza drzewo katalogów widoczne w ramach usługi WWW (np. poza folder public_html/). Niestety wielu dostawców hostingu nie umożliwia tego: wszystkie pliki nagrywane na serwerze znajdują się w folderze dostępnym poprzez WWW. W takiej sytuacji należy wykorzystać plik .htaccess.

Dyrektywa:

<Files ~ "\.php$">
    Order allow,deny
    Deny from all
</Files>

wyłącza dostęp do plików, których nazwa kończy się rozszerzeniem .php.

W podobny sposób możemy wyłączyć:

<Files ~ "\.txt$">
    Order allow,deny
    Deny from all
</Files>

lub włączyć

<Files ~ "\.png$">
    Order allow,deny
    Allow from all
</Files>

dostęp do dowolnego rodzaju plików.

 1   2   3   4   5   6   7   8