5 янв. 2015 г.

Защита PHP на сервере

По следам наших выступлений раз, два.

Я считаю обязательным  в файле /etc/php.ini установить disable_functions = длинный список функций под катом




disable_functions = apache_child_terminate, apache_get_modules, apache_get_version, apache_getenv, apache_lookup_uri, apache_note, apache_request_headers, apache_reset_timeout, apache_response_headers, apache_setenv, closelog, dbmopen, debugger_off, debugger_on, define_syslog_variables, detcwd, disk_free_space, disk_total_space, diskfreespace, dl, escapeshellarg, escapeshellcmd, exec, filegroup, fileowner, fpassthru, ftp_exec, get_current_user, getmyinode, getmypid, getmyuid, highlight_file, imap_body, imap_list, imap_open, imap_popen, ini_alter, ini_get_all, ini_restore, leak, lin, link, listen, mysql_list_dbs, openlog, passthru, pcntl_exec, pcntl_fork, pcntl_signal, pcntl_waitpid, pcntl_wermsig, pcntl_wexitstatus, pcntl_wifexited, pcntl_wifsignaled, pcntl_wifstopped, pcntl_wstopsig, pfsockopen, popen, posix_access, posix_getgrgid, posix_getpwuid, posix_kill, posix_mkfifo, posix_mknod, posix_uname, proc_close, proc_get_status, proc_nice, proc_open, proc_terminate, readlink, shell, shell_exec, show_source, socket_accept, socket_bind, socket_creat, socket_create_listen, socket_create_pair, socket_listen, socket_select, socket_strerror, stream_select, suexec, symlink, syslog, system, virtual, create_function

и не забыть 

# service php-fpm restart

Но:
create_function широко используется в wordpress
proc_open используется в tinyMCE и CKEditor
popen используется для отрисовки графики в Cacti
поэтому тут осторожно

Говорят, что такая простая мера очень защищает от скрипт киддисов. Ну а от заказного взлома ничего не поможет :)

И да, Ceterum censeo Lugansk esse delendam!

Комментариев нет: