如何不让php运行系统命令如 shell_exec、system、passthru、popen 等都是系统相关的合作,如果虚拟主机开放给使用者使用,或是在系统权限没设定完整的情况下,必然会造成很大的伤害。 要达到这个需求,只要在 php.ini 里设定 disable_functions 这个选项就能设定禁止执行的指令了。 注意:网上大多数教程都是写的在 disble_function 这个选项后设定,在这里提醒一下大家,正确的是 disable_functions 这个选项,大家看清楚他们两个是不一样的(网上大多数都写错了),不要找错了哦。 如图:
新键.php文件,在里面输入
以下为引用的内容: www~phperz~com <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> www.phperz.com
</head> www.phperz.com
<body> <?php phpinfo(); ?> </body> </html> php程序员之家
|
运行后效果如图: 可以看出服务器以经把 phpinfo() 这个函数禁用了。 范例: disable_functions = phpinfo 要多个指令的话,用逗点隔开,如: disable_functions = shell_exec, system, passthru, popen php程序员之家
|