Graph image

Czym są disable_functions?

Disable_functions to dyrektywa konfiguracyjna w pliku php.ini, która pozwala na wyłączenie określonych funkcji PHP. Wyłączenie tych funkcji może pomóc w zwiększeniu bezpieczeństwa serwera, uniemożliwiając wykonanie potencjalnie niebezpiecznych operacji, dlatego domyślne są one wyłączone na serwerze.

Oto spis wszystkich funkcji, które są domyślnie wyłączone: exec, system, passthru, shell_exec, proc_close, proc_open,dl, popen,show_source, posix_kill, posix_mkfifo, posix_getpwuid, posix_setpgid, posix_setsid, posix_setuid, posix_setgid, posix_seteuid, posix_setegid, posix_uname.

Jak włączyć wybraną funkcję?

  1. Zaloguj się do panelu administracyjnego serwera na stronie panel.cal.pl.
  2. Z menu po lewej wybierz ’Dodatkowe funkcje’ > ’Select PHP version’.
  1. Wybierz ’Opcję’.
  2. Z listy funkcji odnajdź disable_functions.

Jeśli potrzebujesz wyłączyć daną funkcję wystarczy, że usuniesz nazwę z listy. Ta operacja nie wymaga zapisywania.

W każdej chwili w tym miejscu możesz ponownie dodać funkcję, aby ją dezaktywować.

Do czego służą konkretne funkcję w disable_functions?

W języku PHP istnieje wiele funkcji, które pozwalają na interakcję z systemem operacyjnym oraz wykonywanie różnych operacji na poziomie systemowym. Oto przegląd wymienionych funkcji i ich zastosowań:

  • exec: Wykonuje polecenie systemowe i zwraca ostatnią linię wyjścia. Może także zwrócić całe wyjście jako tablicę.

exec('ls', $output, $return_var);

  • system: Wykonuje polecenie systemowe, natychmiast wyświetla wynik i zwraca ostatnią linię wyjścia.

exec('ls', $output, $return_var);

  • passthru: Wykonuje polecenie systemowe i natychmiast wyświetla surowe dane wyjściowe, bez żadnych modyfikacji.

passthru('ls');

  • shell_exec: Wykonuje polecenie systemowe i zwraca całe wyjście jako ciąg znaków.

$output = shell_exec('ls');

  • proc_close: Zamyka proces otwarty za pomocą proc_open i zwraca kod wyjścia procesu.

$process = proc_open('ls', $descriptorspec, $pipes); proc_close($process);

  • proc_open: Otwiera proces i zwraca zasób procesu, który można manipulować za pomocą innych funkcji.

$process = proc_open('ls', $descriptorspec, $pipes);

  • dl: Ładuje rozszerzenie PHP w trakcie działania skryptu.

dl('some_extension.so');

  • popen: Otwiera proces do odczytu lub zapisu i zwraca wskaźnik pliku.

$handle = popen('ls', 'r');

  • show_source: Wyświetla kod źródłowy skryptu PHP z kolorowaniem składni.

show_source('somefile.php');

  • posix_kill: Wysyła sygnał do procesu (np. zabicie procesu).

posix_kill($pid, SIGTERM);

  • posix_mkfifo: Tworzy FIFO specjalny plik (kolejkę).

posix_mkfifo('/tmp/myfifo', 0644);

  • posix_getpwuid: Pobiera informacje o użytkowniku na podstawie jego UID.

$userinfo = posix_getpwuid(1000);

  • posix_setpgid: Ustawia identyfikator grupy procesów dla danego procesu.

posix_setpgid($pid, $pgid);

  • posix_setsid: Tworzy nową sesję i ustawia proces jako lider tej sesji.

posix_setsid();

  • posix_setuid: Ustawia identyfikator użytkownika dla procesu.

posix_setuid($uid);

  • posix_setgid: Ustawia identyfikator grupy dla procesu.

posix_setgid($gid);

  • posix_seteuid: Ustawia efektywny identyfikator użytkownika dla procesu.

posix_seteuid($euid);

  • posix_setegid: Ustawia efektywny identyfikator grupy dla procesu.

posix_setegid($egid);

  • posix_uname: Zwraca informacje o systemie operacyjnym.

$system_info = posix_uname();

Należy pamiętać, że poniższe przykłady są jedynie demonstracjami i wymagają dostosowania do własnych potrzeb oraz specyfiki kodu. Funkcje te pozwalają na szeroką gamę interakcji i są przydatne w różnych zaawansowanych scenariuszach programistycznych. Jednak należy pamiętać, że mogą one stwarzać potencjalne zagrożenia bezpieczeństwa, dlatego należy ich używać ostrożnie.