cPanel / Plesk · 4 Eylül 2016 4

#PHP.İNİ Security / Php Disabled Functions




PHP.İNİ Security / Php Disabled Functions

#PHP.İNİ Security / Php Disabled Functions Php Disabled functions olarak anlatacağım kısım, Sunucudaki php’nin güvenlik amacı ile devredışı bırakılan fonksiyon listesidir.

Bu listedeki fonksiyonlar genel olarak güvenlik açığı oluşturma riski olduğu için bu fonksiyonların sunucuda kullanılması sunucu güvenliğini riske edeceği için bu fonksiyonları devre dışı bırakmak (Güvenli sunucu isteyenler için gereklidir.)

Tabi bu fonksiyonların devre dışı bırakılması; bu fonksiyonları kullanan tema eklenti, script, vs ne varsa bunların artık çalışmamasına neden olacaktır bunu önlemek için buradaki listede birçok fonksiyonu devre dışı bırakmadan önce kendi sunucunuzda var olup olmadığını kontrol etmenizi öneririm.

Aynı şekilde bu fonksiyonlar güvenlik amacı ile devre dışı bırakılsada sunucuda varsayılan php olarak php.ini kullanmaya zorlamamışsanız bunun hiçbir önemi yoktur. bir saldırgan php.ini içinde disable fonksiyon olarak kendi betiğindeki fonksiyonun çalışmadığını gördüğü anda kendisi yeni bir php.ini oluşturarak betiğine uygun fonksiyonları dahil ederbilir. bu yüzden bu sistemin sağlıklı çalışması için önelikle sunucuda varsayılan php.ini kullanmaya zorlamak gerekir.

Ardından bu php disable fonksiyon listesini eklediğinizde istediğiniz güvenliği elde edersiniz, Ancak bu demek olmuyor ki sunucunuz artık kapalı kutu 🙁 malesef öyle bir durum yok buradaki fonksiyonlar ile sunucuya maksimum güvenlik çekemezsiniz 🙂

Şİmdi kodları vereyim.

 

shell_exec,exec,system,cat,dl,openbasedir,popen,proc_close,proc_get_status,proc_nice,proc_open,escapeshellcmd,escapeshellarg,show_source,
posix_mkfifo,mysql_list_dbs,get_current_user,getmyuid,pconnect,link,symlink,pcntl_exec,ini_alter,parse_ini_file,leak,apache_child_terminate,
posix_kill,posix_setpgid,posix_setsid,posix_setuid,proc_terminate,syslog,fpassthru,allow_url_fopen,stream_select,socket_select,socket_create,
socket_create_listen,socket_create_pair,socket_listen,socket_accept,socket_bind,socket_strerror,pcntl_fork,pcntl_signal,pcntl_waitpid,
pcntl_wexitstatus,pcntl_wifexited,pcntl_wifsignaled,pcntl_wifstopped,pcntl_wstopsig,pcntl_wtermsig,openlog,apache_get_modules,apache_get_version,
apache_getenv,apache_note,apache_setenv,virtual,name,passthru,curl_multi_exec,xmlrpc_entity_decode,posix_uname,posix_getpwuid,phpAds_xmlrpcEncode,
phpAds_xmlrpcDecode,phpAds_XmlRpc,phpAds_remoteInfo,php_uname,mysql_pconnect,inject_code,ini_restore,ini_get_all,highlight_file,ftp_rawlist,ftp_raw,
ftp_put,ftp_nb_fput,ftp_login,ftp_get,ftp_exec,ftp_connect,fput,fp,eval,define_syslog_variables,phpinfo,open_base,foreach,restore_ini,curl_exec,glob

Şİmdilik bu kadar isterseniz github üzerinden ekleme çıkarma yapabilirsiniz 🙂

https://github.com/Php-Disabled-Fonctions/Php-Disable-Fonctions/blob/master/Disabled_Fonctions,



PHP.INI settings Functions To Improve Security

PHP has a lot of functions which can be used to crack your server if not used properly. You can set list of functions in php.ini using disable_functions directive. This directive allows you to disable certain functions for security reasons. It takes on a comma-delimited list of function names. disable_functions is not affected by Safe Mode. This directive must be set in php.ini file. For example, you cannot set this in httpd.conf file.

Open a terminal or login to your server over the ssh session. Open php.ini file:

# nano /etc/php.ini

Find disable_functions and set new list as follows:

shell_exec,exec,system,cat,dl,openbasedir,popen,proc_close,proc_get_status,proc_nice,proc_open,escapeshellcmd,escapeshellarg,show_source,
posix_mkfifo,mysql_list_dbs,get_current_user,getmyuid,pconnect,link,symlink,pcntl_exec,ini_alter,parse_ini_file,leak,apache_child_terminate,
posix_kill,posix_setpgid,posix_setsid,posix_setuid,proc_terminate,syslog,fpassthru,allow_url_fopen,stream_select,socket_select,socket_create,
socket_create_listen,socket_create_pair,socket_listen,socket_accept,socket_bind,socket_strerror,pcntl_fork,pcntl_signal,pcntl_waitpid,
pcntl_wexitstatus,pcntl_wifexited,pcntl_wifsignaled,pcntl_wifstopped,pcntl_wstopsig,pcntl_wtermsig,openlog,apache_get_modules,apache_get_version,
apache_getenv,apache_note,apache_setenv,virtual,name,passthru,curl_multi_exec,xmlrpc_entity_decode,posix_uname,posix_getpwuid,phpAds_xmlrpcEncode,
phpAds_xmlrpcDecode,phpAds_XmlRpc,phpAds_remoteInfo,php_uname,mysql_pconnect,inject_code,ini_restore,ini_get_all,highlight_file,ftp_rawlist,ftp_raw,
ftp_put,ftp_nb_fput,ftp_login,ftp_get,ftp_exec,ftp_connect,fput,fp,eval,define_syslog_variables,phpinfo,open_base,foreach,restore_ini,curl_exec,glob

Save and close the file. Restart

# service httpd restart

SEE YOU 🙂