Require & rozszerzenie pliku

Stosowanie funkcji require lub include w php to bardzo przydatna rzecz. Warto jednak pamiętać o rozszerzeniach plików, które chcemy includować. O co tak naprawdę chodzi? Wystarczy wyobrazić sobie sytuację, że mamy stronę internetową, która używa inkludowania (wstawiania) jakiegoś pliku na strony. W momencie gdy wstawiany plik ma rozszerzenie *.php to nie ma problemu, bo serwer nie ujawni jego zawartości.

W wielu miejscach można znaleźć zalecenie, żeby używać plików *.inc Czy rzeczywiście jest to bezpieczne? W momencie, gdy ktoś zna nazwę pliku lub ma możliwość listingowania katalogu ma od razu dostęp do treści kodu php. Wiąże się to z tym, że czasami może pobrać hasła z tego kodu lub ma możliwość znalezienia dziur w systemie.

Jak się bronić?

Jest kilka możliwości zabezpieczenia się:

– skopiować wszystkie pliki *.inc do katalogu nadrzędnego (powyżej public_html). Pozwoli to na zablokowanie dostępu przez przeglądarkę do wyświetlenia zawartości pliku.

– zmienić rozszerzenie pliku inc na inc.php (plik jest traktowany jako plik z roszerzeniem php)

– używać rozszerzeń php (najprostsze rozwiązanie) zamiast inc.

– dodać w pliku konfiguracyjnym Apache dyrektywę: AddType application/x-httpd-php .inc

Podobne do funkcji require i include są jeszcze funkcje:

– require_once (dołącza plik tylko jeden raz)

– include_once (dołącza plik tylko jeden raz)

Użycie w/w funkcji pozwala zapobiegać błędom przy podwójnym definiowaniu bibliotek.

Logo Apache

Leave a Comment

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