php禁用函数设置及查看方法的介绍(附示例)

本篇文章给大家带来的内容是关于php禁用函数设置及查看方法的介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

这篇文章主要介绍了php禁用函数设置及查看方法,结合实例形式分析了php禁用函数的方法及使用php探针查看禁用函数信息的相关实现技巧,需要的朋友可以参考下

本文实例讲述了php禁用函数设置及查看方法。分享给大家供大家参考,具体如下:

打开PHP.INI,找到这行:

disable_functions =

在后面那里加上要禁用的函数,如禁用多个函数,要用半角逗号 , 分开

给个例子:

  1. disable_functions = passthru,exec,system,popen,chroot,scandir,chgrp,chown,escapesh
  2. 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

在主机上面如何查看禁用的函数列表,我从网上找了一个非常不错的探针:

  1. <?php
  2. header("content-Type: text/html; charset=utf-8");
  3. header("Cache-Control: no-cache, must-revalidate");
  4. header("Pragma: no-cache");
  5. error_reporting(0);
  6. ob_end_flush();
  7. ?>
  8. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  9. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  10. <html xmlns="http://www.w3.org/1999/xhtml">
  11. <head>
  12. <meta http-equiv="Pragma" content="No-cache" />
  13. <meta http-equiv="Expires" content="0" />
  14. <meta http-equiv="cache-control" content="private" />
  15. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />//加了这句,看看能不能解决linux下显示乱码的问题?
  16. <title>PHP 探针 v1.0</title>
  17. <style type="text/css">
  18. <!--
  19. body{text-align:center;margin-top:20px;background-color:#a9b674;}
  20. #overview{width:700px;margin:0 auto;text-align:left;}
  21. a{text-decoration:underline;color:#992700;}
  22. .strong{color:#992700;}
  23. .basew{width:300px;}
  24. -->
  25. </style>
  26. </head>
  27. <body>
  28. <div >
  29. <div >版权信息
  30. <a href="hello.php?typ=baseinfo">[基本信息]</a> <a href="hello.php?typ=superinfo">[高级信息]</a>
  31. <?php
  32. if (function_exists("phpinfo")){
  33. echo'<a href="hello.php?typ=phpinfo">[phpinfo]</a>';}
  34. echo'<br />php探针v1.0 by MKDuse(blueidea-id)<br /><br />此程序代码,可免费使用;但不得用于商业用途;完全转载或使用此代码,请保留版权信息;<br />欢迎指正错误提建议,QQ:122712355</div>';
  35. if (emptyempty($_GET['typ'])){
  36. baseinfo();}
  37. else{
  38. switch ($_GET['typ']){
  39. case 'phpinfo':
  40. phpinfoview();
  41. break;
  42. case 'superinfo':
  43. superinfo();
  44. break;
  45. case 'baseinfo':
  46. baseinfo();
  47. break;
  48. default:
  49. baseinfo();}
  50. }
  51. function getime()
  52. {
  53. $t = gettimeofday();
  54. return (float)($t['sec'] + $t['usec']/1000000);
  55. }
  56. function baseinfo(){
  57. echo '<h1>基本信息</h1>';
  58. $arr[]=array("Current PHP version:",phpversion());
  59. $arr[]=array("Zend engine version:",zend_version());
  60. $arr[]=array("服务器版本",$_SERVER['SERVER_SOFTWARE']);
  61. $arr[]=array("ip地址",$_SERVER['REMOTE_HOST']);//ip
  62. $arr[]=array("域名",$_SERVER['HTTP_HOST']);
  63. $arr[]=array("协议端口",$_SERVER['SERVER_PROTOCOL'].' '.$_SERVER['SERVER_PORT']);
  64. $arr[]=array("站点根目录",$_SERVER['PATH_TRANSLATED']);
  65. $arr[]=array("服务器时间",date('Y年m月d日,H:i:s,D'));
  66. $arr[]=array("当前用户",get_current_user());
  67. $arr[]=array("操作系统",php_uname('s').php_uname('r').php_uname('v'));
  68. $arr[]=array("include_path",ini_get('include_path'));
  69. $arr[]=array("Server API",php_sapi_name());
  70. $arr[]=array("error_reporting level",ini_get("display_errors"));
  71. $arr[]=array("POST提交限制",ini_get('post_max_size'));
  72. $arr[]=array("upload_max_filesize",ini_get('upload_max_filesize'));
  73. $arr[]=array("脚本超时时间",ini_get('max_execution_time').'秒');
  74. if (ini_get("safe_mode")==0){
  75. $arr[]=array("PHP安全模式(Safe_mode)",'off');}
  76. else{
  77. $arr[]=array("PHP安全模式(Safe_mode)",'on');}
  78. if (function_exists('memory_get_usage')){
  79. $arr[]=array("memory_get_usage",ini_get('memory_get_usage'));}
  80. //$arr[]=array("可用空间",intval(diskfreespace('/')/(1024 * 1024))."M");
  81. echo'<table>';
  82. for($i=0;$i<count($arr);$i++)
  83. {
  84. $overview='<tr><td class="basew">'.$arr[$i][0].'</td><td>'.$arr[$i][1].'</td></tr>';
  85. echo $overview;
  86. }
  87. echo'</table>';
  88. echo '<h2>服务器性能测试</h2>';
  89. echo'<table><tr><td>服务器</td><td>整数运算<br />50万次加法(1+1)</td><td>浮点运算<br />50万次平方根(3.14开方)</td></tr>';
  90. echo'<tr><td>MKDuse的机子(P4 1.5G 256DDR winxp sp2)</td><td>465.08ms</td><td>466.66ms</td></tr>';
  91. $time_start=getime();
  92. for($i=0;$i<=500000;$i++);
  93. {$count=1+1;}
  94. $timea=round((getime()-$time_start)*1000,2);
  95. echo '<tr class="strong"><td>当前服务器</td><td>'.$timea.'ms</td>';
  96. $time_start=getime();
  97. for($i=0;$i<=500000;$i++);
  98. {sqrt(3.14);}
  99. $timea=round((getime()-$time_start)*1000,2);
  100. echo '<td>'.$timea.'ms</td></tr></table>';
  101. ?>
  102. <script language="javascript" type="text/javascript">
  103. function gettime()
  104. {
  105. var time;
  106. time=new Date();
  107. return time.getTime();
  108. }
  109. start_time=gettime();
  110. </script>
  111. <?php
  112. echo '<h2>带宽测试</h2>';
  113. for ($i=0;$i<100;$i++){
  114. print "<!--1234567890#########0#########0#########0#########0#########0#########0#########0#########012345-->";}
  115. ?>
  116. <p ></p>
  117. <script language="javascript" type='text/javascript'>
  118. var timea;
  119. var netspeed;
  120. timea=gettime()-start_time;
  121. netspeed=Math.round(10/timea*1000);
  122. document.getElementByIdx("dk").innerHTML="向客户端发送10KB数据,耗时"+timea+"ms<br />您与此服务器的连接速度为"+netspeed+"kb/s";
  123. </script>
  124. <?php
  125. echo'<h2>已加载的扩展库(enable)</h2><div>';
  126. $arr =get_loaded_extensions();
  127. foreach($arr as $value){
  128. echo $value.'<br />';}
  129. echo'</div><h2>禁用的函数</h2><p>';
  130. $disfun=ini_get('disable_functions');
  131. if (emptyempty($disfun)){
  132. echo'没有禁用</p>';}
  133. else{
  134. echo ini_get('disable_functions').'</p>';}
  135. }//关闭
  136. function superinfo(){
  137. 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>';
  138. $arr1=ini_get_all();
  139. for ($i=0;$i<count($arr1);$i++)
  140. {
  141. $arr2=array_slice($arr1,$i,1);
  142. print_r($arr2);
  143. echo '<br />';
  144. }
  145. }
  146. function phpinfoview(){
  147. phpinfo();
  148. }
  149. ?>
  150. </div>
  151. </body>
  152. </html>

以上就是php禁用函数设置及查看方法的介绍(附示例)的详细内容。