本文實例講述了php禁用函數設置及查看方法。分享給大家供大家參考,具體如下:
打開PHP.INI,找到這行:
disable_functions =
在後面那裡加上要禁用的函數,如禁用多個函數,要用半角逗號 , 分開
給個例子:
復制代碼 代碼如下:disable_functions = passthru,exec,system,popen,chroot,scandir,chgrp,chown,escapesh
ellcmd,escapeshellarg,shell_exec,proc_open,proc_get_status
建議在主機上禁用的函數:
復制代碼 代碼如下:disable_functions = system,exec,shell_exec,passthru,proc_open,proc_close, proc_get_status,checkdnsrr,getmxrr,getservbyname,getservbyport, syslog,popen,show_source,highlight_file,dl,socket_listen,socket_create,socket_bind,socket_accept, socket_connect, stream_socket_server, stream_socket_accept,stream_socket_client,ftp_connect, ftp_login,ftp_pasv,ftp_get,sys_getloadavg,disk_total_space, disk_free_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
在主機上面如何查看禁用的函數列表,我從網上找了一個非常不錯的探針
<?php header("content-Type: text/html; charset=utf-8"); header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache"); error_reporting(0); ob_end_flush(); ?> <!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> <meta http-equiv="Pragma" content="No-cache" /> <meta http-equiv="Expires" content="0" /> <meta http-equiv="cache-control" content="private" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />//加了這句,看看能不能解決linux下顯示亂碼的問題? <title>PHP 探針 v1.0</title> <style type="text/css"> <!-- body{text-align:center;margin-top:20px;background-color:#a9b674;} #overview{width:700px;margin:0 auto;text-align:left;} a{text-decoration:underline;color:#992700;} .strong{color:#992700;} .basew{width:300px;} --> </style> </head> <body> <div id="overview"> <div id="copyright">版權信息 <a href="hello.php?typ=baseinfo">[基本信息]</a> <a href="hello.php?typ=superinfo">[高級信息]</a> <?php if (function_exists("phpinfo")){ echo'<a href="hello.php?typ=phpinfo">[phpinfo]</a>';} echo'<br />php探針v1.0 by MKDuse(blueidea-id)<br /><br />此程序代碼,可免費使用;但不得用於商業用途;完全轉載或使用此代碼,請保留版權信息;<br />歡迎指正錯誤提建議,QQ:122712355</div>'; if (empty($_GET['typ'])){ baseinfo();} else{ switch ($_GET['typ']){ case 'phpinfo': phpinfoview(); break; case 'superinfo': superinfo(); break; case 'baseinfo': baseinfo(); break; default: baseinfo();} } function getime() { $t = gettimeofday(); return (float)($t['sec'] + $t['usec']/1000000); } function baseinfo(){ echo '<h1>基本信息</h1>'; $arr[]=array("Current PHP version:",phpversion()); $arr[]=array("Zend engine version:",zend_version()); $arr[]=array("服務器版本",$_SERVER['SERVER_SOFTWARE']); $arr[]=array("ip地址",$_SERVER['REMOTE_HOST']);//ip $arr[]=array("域名",$_SERVER['HTTP_HOST']); $arr[]=array("協議端口",$_SERVER['SERVER_PROTOCOL'].' '.$_SERVER['SERVER_PORT']); $arr[]=array("站點根目錄",$_SERVER['PATH_TRANSLATED']); $arr[]=array("服務器時間",date('Y年m月d日,H:i:s,D')); $arr[]=array("當前用戶",get_current_user()); $arr[]=array("操作系統",php_uname('s').php_uname('r').php_uname('v')); $arr[]=array("include_path",ini_get('include_path')); $arr[]=array("Server API",php_sapi_name()); $arr[]=array("error_reporting level",ini_get("display_errors")); $arr[]=array("POST提交限制",ini_get('post_max_size')); $arr[]=array("upload_max_filesize",ini_get('upload_max_filesize')); $arr[]=array("腳本超時時間",ini_get('max_execution_time').'秒'); if (ini_get("safe_mode")==0){ $arr[]=array("PHP安全模式(Safe_mode)",'off');} else{ $arr[]=array("PHP安全模式(Safe_mode)",'on');} if (function_exists('memory_get_usage')){ $arr[]=array("memory_get_usage",ini_get('memory_get_usage'));} //$arr[]=array("可用空間",intval(diskfreespace('/')/(1024 * 1024))."M"); echo'<table>'; for($i=0;$i<count($arr);$i++) { $overview='<tr><td class="basew">'.$arr[$i][0].'</td><td>'.$arr[$i][1].'</td></tr>'; echo $overview; } echo'</table>'; echo '<h2>服務器性能測試</h2>'; echo'<table><tr><td>服務器</td><td>整數運算<br />50萬次加法(1+1)</td><td>浮點運算<br />50萬次平方根(3.14開方)</td></tr>'; echo'<tr><td>MKDuse的機子(P4 1.5G 256DDR winxp sp2)</td><td>465.08ms</td><td>466.66ms</td></tr>'; $time_start=getime(); for($i=0;$i<=500000;$i++); {$count=1+1;} $timea=round((getime()-$time_start)*1000,2); echo '<tr class="strong"><td>當前服務器</td><td>'.$timea.'ms</td>'; $time_start=getime(); for($i=0;$i<=500000;$i++); {sqrt(3.14);} $timea=round((getime()-$time_start)*1000,2); echo '<td>'.$timea.'ms</td></tr></table>'; ?> <script language="javascript" type="text/javascript"> function gettime() { var time; time=new Date(); return time.getTime(); } start_time=gettime(); </script> <?php echo '<h2>帶寬測試</h2>'; for ($i=0;$i<100;$i++){ print "<!--1234567890#########0#########0#########0#########0#########0#########0#########0#########012345-->";} ?> <p id="dk"></p> <script language="javascript" type='text/javascript'> var timea; var netspeed; timea=gettime()-start_time; netspeed=Math.round(10/timea*1000); document.getElementByIdx("dk").innerHTML="向客戶端發送10KB數據,耗時"+timea+"ms<br />您與此服務器的連接速度為"+netspeed+"kb/s"; </script> <?php echo'<h2>已加載的擴展庫(enable)</h2><div>'; $arr =get_loaded_extensions(); foreach($arr as $value){ echo $value.'<br />';} echo'</div><h2>禁用的函數</h2><p>'; $disfun=ini_get('disable_functions'); if (empty($disfun)){ echo'沒有禁用</p>';} else{ echo ini_get('disable_functions').'</p>';} }//關閉 function superinfo(){ echo'<h1>高級信息</h1><p>PHP_INI_USER 1 配置選項可用在用戶的 PHP 腳本或Windows 注冊表中<br> PHP_INI_PERDIR 2 配置選項可在 php.ini, .htaccess 或 httpd.conf 中設置 <br>PHP_INI_SYSTEM 4 配置選項可在 php.ini or httpd.conf 中設置 <br>PHP_INI_ALL 7 配置選項可在各處設置</p>'; $arr1=ini_get_all(); for ($i=0;$i<count($arr1);$i++) { $arr2=array_slice($arr1,$i,1); print_r($arr2); echo '<br />'; } } function phpinfoview(){ phpinfo(); } ?> </div> </body> </html>
更多關於PHP相關內容感興趣的讀者可查看本站專題:《php程序設計安全教程》、《php面向對象程序設計入門教程》、《PHP數學運算技巧總結》、《PHP數組(Array)操作技巧大全》、《php字符串(string)用法總結》、《PHP數據結構與算法教程》、《php程序設計算法總結》及《php常見數據庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。