-
PHP open_basedir
Bezpieczeństwo skryptów PHP pozostawia niestety wiele do życzenia. Programiści i webmasterzy zbyt lekko podchodzą do aspektu bezpieczeństwa swoich aplikacji i stron. Oliwy do ognia dolewają często administratorzy, którzy nie dbają o aktualność oprogramowania zainstalowanego na serwerach. Często spotykamy się z wieloma ograniczeniami dotyczącymi stron i skryptów takimi, jak np. safe_mode, które tak naprawdę niewiele wnoszą w kwestii zwiększenia bezpieczeństwa. Rozwiązanie które pragnę opisać jest chyba dosyć rzadko stosowane, choć niezwykle skuteczne. Mam na myśli „PHP open_basedir”. Jest to ograniczenie działania/wykonywania skryptów napisanych w języku skryptowym PHP do danych katalogów. Aby włączyć domyślnie tą funkcjonalność należy wyedytować plik „php.ini” znajdujący się standardowo w katalogu „/etc”. Znajdujemy linijkę rozpoczynającą się od „;open_basedir” i usuwamy z niej znak średnika, a po „=” wpisujemy foldery globalne w których skrypty mogą być wykonywane. Rozdzielamy je dwukropkiem. Słowo globalnie oznacza, że dla każdego virtual-hosta. Można oczywiście indywidualnie ustawiać katalogi w ustawieniach vhosta. Należy w nich umieścić dyrektywę „php_admin_value open_basedir”. Po spacji wypisujemy katalogi ze pełnymi ścieżkami oddzielone dwukropkiem np.
php_admin_value open_basedir /usr/share/squirrelmail:/etc/squirrelmail:/tmp:
Polecam opisywaną usługą przede wszystkim osobom świadczącym usługi hostingowe. Proszę o komentowanie i dzielenie się własnymi doświadczeniami związanymi z bezpieczeństwem usług WWW i nie tylko.
Jako dopełnienie należy dodać, że wartością open_basedir jest prefix, a nie nazwa katalogu. Oznacza to, że open_basedir = /dir/incl zezwala na dostęp do /dir/include i /dir/incls jeżeli takie istnieją. Pozdrawiam autora. tolomei