Przez Sławomir Pieszczek dnia niedziela, 18 lipiec 2010
Kategoria: Informatyka

PHP - dyrektywa include

Czy dyrektywa include() może wpłynąć na bezpieczeństwo aplikacji PHP?

Instrukcja „include” pozwala wczytać plik, którego adres został podany w jej argumencie. Służy ona do wczytania i wykonania kodu z określonego pliku w trakcie wykonywania skryptu.

Użycie tej dyrektywy może być niebezpieczne kiedy aplikacja przesyła adres strony w postaci zmiennej poprzez protokół HTTP za pomocą metody GET, np:

$strona=$_GET['adres'];
include($strona);

index.php?adres='http://adres_strony.php'

Istnieje niebezpieczeństwo w tym przypadku, że modyfikując adres strony w przeglądarce możliwe jest wywołanie dowlonej strony WWW.

Aby temu zaradzić możemy zastosować na przykład taką instrukcję:

include('./'.$_GET['katalog']);
?>


W ten sposób będziemy mogli dołączać jedynie pliki, które znajdują się w określonym w skrypcie katalogu. Wówczas nie można będzie załączyć pliku z innego serwera.
Generalnie, ważne jest to, aby nigdy nie zezwalać użytkownikowi na dostęp do jakiegokolwiek pliku oraz odpowiednie przefiltrowanie wszystkiego co pochodzi z zewnątrz.

Uważasz, że artykuł był ciekawy i chcesz otrzymywać powiadomienia o moich kolejnych wpisach lub projektach?
Wpisz swoje imię oraz adres e-mail a następnie kliknij "ZAPISZ MNIE"

Wpisy powiązane

Leave Comments