php配置文件:透析PHP的配置文件

  前面象Shaun Clowes和rfp等都比较详细介绍了php、cgi在编程过程中遇到问题以及如何通过应用漏洞突破系统这篇文章我们来通过对php些服务器端特性来进行配置加强php安全写cgi脚本时候我们定注意各种安全问题对用户输入进行严格过滤但是常在岸边走哪有不湿鞋吃烧饼哪有不掉芝麻人有失蹄马有失手连著名phpnuke、phpMyAdmin等都出现过很严重问题更何况象我等小混混写脚本所以现在我们假设php脚本已经出现严重问题比如象前阵子 phpnuke可以上传php脚本大问题了我们如何通过对服务器配置使脚本出现如此问题也不能突破系统

  1、编译时候注意补上已知漏洞

  从4.0.5开始phpmail加入了第 5个参数但它没有好好过滤使得php应用能突破safe_mode限制而去执行命令所以使用4.0.5和4.0.6时候在编译前我们需要修改php源码包里ext/standard/mail.c文件禁止mail第 5参数或过滤shell在mail.c文件第152行也就是下面这行:

   (extra_cmd != NULL) {

  后面加上extra_cmd=NULL;或extra_cmd = php_escape_shell_cmd(extra_cmd);然后编译php那么我们就修补了这个漏洞

  2、修改php.ini配置文件

  以php发行版php.ini-dist为蓝本进行修改

  1)Error handling and logging

  在Error handling and logging部分可以做些设定先找到:

  display_errors = _disibledevent=>   关闭显示后php执行信息将不会再显示给用户这样能在定程度上防止攻击者从信息得知脚本物理位置以及些其它有用信息起码给攻击者黑箱检测造成障碍这些信息可能对我们自己有用可以让它写到指定文件中去那么修改以下:

  log_errors = Off

  改为:

  log_errors = _disibledevent=>   去掉前面;注释把filename改为指定文件如/usr/local/apache/logs/php_error.log

  error_log = /usr/local/apache/logs/php_error.log

  这样所有都会写到php_error.log文件里

  2)Safe Mode

  phpsafe_mode功能对很多进行了限制或禁用了能在很大程度解决php安全问题在Safe Mode部分找到:

  safe_mode = Off

  改为:

  safe_mode = _disibledevent=>   指定要执行路径如:

  safe_mode_exec_dir = /usr/local/php/exec

  然后把要用拷到/usr/local/php/exec目录下这样象上面被限制还能执行该目录里

  有关安全模式下受限详细信息请查看php主站介绍说明:

  http://www.php.net/manual/en/features.safe-mode.php

  3)disable_functions

  如果你对危害性不太清楚而且也没有使用索性把这些禁止了找到下面这行:

  disable_functions =

  在”=“后面加上要禁止多个用”,“隔开

  3、修改httpd.conf

  如果你只允许你php脚本在web目录里操作还可以修改httpd.conf文件限制php操作路径比如你web目录是/usr/local/apache/htdocs那么在httpd.conf里加上这么几行:

  php_admin_value open_basedir /usr/local/apache/htdocs

  这样如果脚本要读取/usr/local/apache/htdocs以外文件将不会被允许如果显示打开话会提示这样:

  Warning: open_basedir restriction

Tags:  php5.3配置文件 php168配置文件 phpadmin配置文件 php配置文件

延伸阅读

最新评论

发表评论