欢迎来到福编程网,本站提供各种互联网专业知识!

php禁用函数设置及查看方法详解

发布时间:2016-07-25 作者:宰相秋水 来源:转载
这篇文章主要介绍了php禁用函数设置及查看方法,结合实例形式分析了php禁用函数的方法及使用php探针查看禁用函数信息的相关实现技巧,需要的朋友可以参考下

本文实例讲述了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

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

  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. //加了这句,看看能不能解决linux下显示乱码的问题?
  9. PHP 探针 v1.0
  10. [基本信息] [高级信息]
  11. <?php
  12. if (function_exists("phpinfo")){
  13. echo'[phpinfo]';}
  14. echo'

    php探针v1.0 by MKDuse(blueidea-id)

    此程序代码,可免费使用;但不得用于商业用途;完全转载或使用此代码,请保留版权信息;

    欢迎指正错误提建议,QQ:122712355

    ';
  15. if (empty($_GET['typ'])){
  16. baseinfo();}
  17. else{
  18. switch ($_GET['typ']){
  19. case 'phpinfo':
  20. phpinfoview();
  21. break;
  22. case 'superinfo':
  23. superinfo();
  24. break;
  25. case 'baseinfo':
  26. baseinfo();
  27. break;
  28. default:
  29. baseinfo();}
  30. }
  31. function getime()
  32. {
  33. $t = gettimeofday();
  34. return (float)($t['sec'] + $t['usec']/1000000);
  35. }
  36. function baseinfo(){
  37. echo '

    基本信息

    ';
  38. $arr[]=array("Current PHP version:",phpversion());
  39. $arr[]=array("Zend engine version:",zend_version());
  40. $arr[]=array("服务器版本",$_SERVER['SERVER_SOFTWARE']);
  41. $arr[]=array("ip地址",$_SERVER['REMOTE_HOST']);//ip
  42. $arr[]=array("域名",$_SERVER['HTTP_HOST']);
  43. $arr[]=array("协议端口",$_SERVER['SERVER_PROTOCOL'].' '.$_SERVER['SERVER_PORT']);
  44. $arr[]=array("站点根目录",$_SERVER['PATH_TRANSLATED']);
  45. $arr[]=array("服务器时间",date('Y年m月d日,H:i:s,D'));
  46. $arr[]=array("当前用户",get_current_user());
  47. $arr[]=array("操作系统",php_uname('s').php_uname('r').php_uname('v'));
  48. $arr[]=array("include_path",ini_get('include_path'));
  49. $arr[]=array("Server API",php_sapi_name());
  50. $arr[]=array("error_reporting level",ini_get("display_errors"));
  51. $arr[]=array("POST提交限制",ini_get('post_max_size'));
  52. $arr[]=array("upload_max_filesize",ini_get('upload_max_filesize'));
  53. $arr[]=array("脚本超时时间",ini_get('max_execution_time').'秒');
  54. if (ini_get("safe_mode")==0){
  55. $arr[]=array("PHP安全模式(Safe_mode)",'off');}
  56. else{
  57. $arr[]=array("PHP安全模式(Safe_mode)",'on');}
  58. if (function_exists('memory_get_usage')){
  59. $arr[]=array("memory_get_usage",ini_get('memory_get_usage'));}
  60. //$arr[]=array("可用空间",intval(diskfreespace('/')/(1024 * 1024))."M");
  61. echo'';
  62. for($i=0;$i<count($arr);$i++)
  63. {
  64. $overview='';
  65. echo $overview;
  66. }
  67. echo'
    '.$arr[$i][0].''.$arr[$i][1].'
    ';
  68. echo '

    服务器性能测试

    ';
  69. echo'';
  70. echo'';
  71. $time_start=getime();
  72. for($i=0;$i<=500000;$i++);
  73. {$count=1+1;}
  74. $timea=round((getime()-$time_start)*1000,2);
  75. echo '';
  76. $time_start=getime();
  77. for($i=0;$i<=500000;$i++);
  78. {sqrt(3.14);}
  79. $timea=round((getime()-$time_start)*1000,2);
  80. echo '
    服务器整数运算

    50万次加法(1+1)

    浮点运算

    50万次平方根(3.14开方)

    MKDuse的机子(P4 1.5G 256DDR winxp sp2)465.08ms466.66ms
    当前服务器'.$timea.'ms'.$timea.'ms
    ';
  81. ?>
  82. <?php
  83. echo '

    带宽测试

    ';
  84. for ($i=0;$i<100;$i++){
  85. print "";}
  86. ?>
  87. <?php
  88. echo'

    已加载的扩展库(enable)

    ';
  89. $arr =get_loaded_extensions();
  90. foreach($arr as $value){
  91. echo $value.'

    ';}

  92. echo'

    禁用的函数

    ';

  93. $disfun=ini_get('disable_functions');
  94. if (empty($disfun)){
  95. echo'没有禁用

    ';}
  96. else{
  97. echo ini_get('disable_functions').'

    ';}
  98. }//关闭
  99. function superinfo(){
  100. echo'

    高级信息

    PHP_INI_USER 1 配置选项可用在用户的 PHP 脚本或Windows 注册表中

    PHP_INI_PERDIR 2 配置选项可在 php.ini, .htaccess 或 httpd.conf 中设置

    PHP_INI_SYSTEM 4 配置选项可在 php.ini or httpd.conf 中设置

    PHP_INI_ALL 7 配置选项可在各处设置

    ';
  101. $arr1=ini_get_all();
  102. for ($i=0;$i<count($arr1);$i++)
  103. {
  104. $arr2=array_slice($arr1,$i,1);
  105. print_r($arr2);
  106. echo '

    ';

  107. }
  108. }
  109. function phpinfoview(){
  110. phpinfo();
  111. }
  112. ?>

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php程序设计安全教程》、《php面向对象程序设计入门教程》、《PHP数学运算技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

相关推荐