Częste ataki hakerów dowodzą, że bezpieczeństwo sieci pozostaje najważniejszą kwestią dla każdego, kto prowadzi interesy w Internecie. Serwery są najczęściej celem tych ataków ze względu na informacje, które przechowują. Dlatego konieczne jest zapewnienie niezawodnej ochrony serwera.
Zabezpieczanie PHP na Apache
Uruchom protokół "phpinfo()" i sprawdź linię komendą "open_basedir". Za pomocą tego polecenia możesz zdefiniować katalog podstawowy dla wszystkich użytkowników. Po ustawieniu tej wartości nie będą już mogli otwierać plików poza tym folderem głównym lub jego podkatalogami, takimi jak „C: / Windows”.
Jeśli masz inne katalogi strukturalne, zdefiniuj je jako katalog bazowy za pomocą polecenia „www_root”. Jednak jeden użytkownik będzie mógł również czytać i modyfikować pliki innego użytkownika. Należy temu zapobiec.
Niestety, w pliku php.ini nie ma opcji uniemożliwiających jednemu użytkownikowi dostęp do danych innego użytkownika.
Ale jest jeden interesujący sposób, jeśli PHP działa na Apache. W phpinfo() znajdziesz dwie kolumny: Wartość podstawowa i Wartość lokalna. Pierwsza to wartość w "php.ini". Druga to wartość, która jest określana podczas działania serwera.
Jeśli główna wartość jest mała pod względem liczbowym, można ją zmienić w skrypcie za pomocą polecenia „ini_set ()”. Nie dotyczy to „open_basedir”, ponieważ ta wartość ma krytyczne znaczenie dla bezpieczeństwa i może być zmieniona tylko przez administratora.
W Apache plik konfiguracyjny „httpd.conf” można określić w instrukcji pod lokalną wartością „open_basedir”.
Inne ustawienia PHP
Ustawiając "disable_functions" w pliku "php.ini", musisz wyłączyć funkcje, które są potencjalnie niebezpieczne.
Zastanów się dokładnie nad każdym podejmowanym działaniem. Wyłączenie funkcji oznacza, że niektóre skrypty przestaną działać.
Niektóre funkcje są naprawdę niebezpieczne i zwykle nie są wymagane do pisania skryptów. Inne mogą być potrzebne do określonych celów. Dlatego nie jest łatwo wyłączyć wszystkie funkcje, które mogą być niebezpieczne, ale także dokładnie rozważyć swoje decyzje.
Nie wierz, że wystarczy sama funkcja "safe_mode = On". Może wyłączyć niektóre przydatne funkcje i może nie rozwiązać opisanego powyżej problemu z zabezpieczeniami. Tryb bezpieczny jest przestarzały w PHP 5.3.0 i usunięty w PHP 6.0.0.
Kwestie ochrony
Istnieje kilka błędów, które może popełnić programista stron internetowych, które mogą spowodować, że witryna będzie niebezpieczna.
Na przykład, jeśli utworzysz swojego bloga i pozwolisz użytkownikom przesyłać obrazy, może to stanowić poważne zagrożenie, gdy kod zostanie napisany przez początkującego. Istnieje kilka błędów, które programista może popełnić na stronie logowania itp. Jednym z najczęstszych jest brak zakazu pobierania złośliwych algorytmów.
Ważne jest to, że jedna niezabezpieczona witryna na publicznym hostingu stanowi zagrożenie dla całego serwera. Również instalowanie projektów Open Source, takich jak PHP-Nuke, może być ryzykowne. Odkryto już kilka luk w podobnych projektach.