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.