那些PHP函数必须被禁用

PHP代表Hypertext Preprocessor是强大而流行的服务器端脚本语言,用于提供动态网页。编码和调试非常简单,并支持多个数据库,如MySQL,MS SQL和Oracle。

但是,有没有想过,一些PHP功能对您的服务器和存储在其上的数据可能是非常危险的?

当PHP代码以不正确的方式使用或任何不安全的PHP代码时,可能会弄乱Web托管服务器,并且可能被黑客黑客入侵。不安全的PHP代码可能会在您无法想象的水平上伤害您的服务器数据。

使用不安全的PHP代码,作为安全漏洞,黑客可以启用一些非常危险和强大的PHP功能,并可以控制您的Web托管服务器。在PHP配置文件中应该禁用许多这样的PHP函数。让我们在Web服务器上立即查看php配置文件中应该禁用的功能。

以下是危险php功能的列表:

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

在PHP处理程序配置为使用DSO的cPanel服务器上,PHP运行在没有所有权的情况下。如果您已获得777的许可,这可能会成为安全漏洞并造成重大问题。777权限允许“nobody”用户读取,写入和执行文件。所以,更好的是要小心的权限。

总是建议将权限设置为755,以免任何人都可以编辑或更改文件。PHPsuexec函数不允许php脚本作为777权限运行,文件也不能被读取。应始终启用此功能,以确保最大的安全性。

总是使用诸如“ exec ”和“ system ” 这样的PHP函数执行外部程序。甚至一个shell命令也可以执行。如果启用这两个功能,则用户可以输入任何命令作为输入并执行到您的服务器。用户也可以通过给出“rm -rf *”命令来删除所有数据。即使用户只需在参数区域中使用(;)即可输入任何命令。因此,最好在php.ini配置文件中禁用“exec”和“system”功能。

在ssh中输入以下命令找到您的php.ini文件:

root @ server [〜]#php -i | grep php.ini

大多数情况下,你会得到它在/etc/php.ini目录,或者你也可以在/usr/local/lib/php.ini

输入以下命令使用您喜欢的编辑器编辑文件。我在这里使用了VI编辑器:

root @ server [〜]#vi /etc/php.ini

在php.ini文件中搜索以下文本“disable_functions”。

disable_functions:是一个用于禁用不安全的php函数的指令。

在配置文件中找到“disable_functions”指令后,修改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”

上述更改可以应用于Linux和Windows服务器。

修改php.ini配置文件后,您将需要重新启动Linux服务器上的Apache Web服务器和Windows服务器上的IIS Web服务器,以使更改生效。

禁用上述危险的php功能后,您的Web应用程序可能会遇到问题。例如:当您禁用“ shell_exec ”并访问cPanel中的Fantastico时,可能会看到以下错误:

Warning: shell_exec() has been disabled for security reasons in /tmp/cpanel_phpengine.*.* on line *

在这种情况下,您应该从SSH运行以下命令:

/scripts/makecpphp

上述命令将安装一个PHP副本,以便与cPanel / WHM后端及其附件(如Fantastico)配合使用。