user gravatar

Опасные PHP функции, которые стоит отключать на сервере

Опасные PHP функции, которые стоит отключать на сервере

PHP является одним из самых популярных языков программирования. Частично из-за его популярности, его уязвимости известны большому количеству людей.

От многих этих уязвимостей можно избавиться простых отключением некоторых встроенных функции или безопасным кодом.

Сегодня мы поговорим какие встроенные PHP функции стоит отключать.

Список одних из самых опасных PHP функции:

apache_child_terminate
apache_setenv
define_syslog_variables
escapeshellarg
escapeshellcmd
eval
exec
shell_exec
fp
fput
ftp_connect
ftp_exec
ftp_get
ftp_login
ftp_nb_fput
ftp_put
ftp_raw
ftp_rawlist
highlight_file
ini_alter
ini_get_all
ini_restore
inject_code
mysql_pconnect
openlog
passthru
php_uname
phpAds_remoteInfo
phpAds_XmlRpc
phpAds_xmlrpcDecode
phpAds_xmlrpcEncode
popen
posix_getpwuid
posix_kill
posix_mkfifo
posix_setpgid
posix_setsid
posix_setuid
posix_setuid
posix_uname
proc_close
proc_get_status
proc_nice
proc_open
proc_terminate
shell_exec
syslog
system
xmlrpc_entity_decode

Как отключить опасные PHP функции

Прежде всего нужно открыть файл конфигурации PHP:

sudo vim /etc/php5/apache2/php.ini

И найти линию, которая содержит disable_functions. И изменить эту линию так, чтобы она содержала выше приведенные функции:

disable_functions = "apache_child_terminate, apache_setenv, define_syslog_variables, escapeshellarg, escapeshellcmd, eval, exec, fp, fput, ftp_connect, ftp_exec, ftp_get, ftp_login, ftp_nb_fput, ftp_put, ftp_raw, ftp_rawlist, highlight_file, ini_alter, ini_get_all, ini_restore, inject_code, mysql_pconnect, openlog, passthru, php_uname, phpAds_remoteInfo, phpAds_XmlRpc, phpAds_xmlrpcDecode, phpAds_xmlrpcEncode, popen, posix_getpwuid, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid, posix_setuid, posix_uname, proc_close, proc_get_status, proc_nice, proc_open, proc_terminate, shell_exec, syslog, system, xmlrpc_entity_decode, shell_exec"

После сохранения этих изменении, нужно перезагрузить сервер:

sudo /etc/init.d/apache2 restart