php漏洞php后门防范(从配置文件上)
2013-08-02 14:55
281 查看
前一排服务器被放了后门 入侵者居然大白天在服务器上面打包整站程序,让人震惊的同时也让我们看清了我们服务器安全,代码安全方面的严重隐患!
这周总结了部分php安全方面的知识,就算浅薄,权当亡羊补牢也好,先记下来,以供日后参考。
php.ini 设置
1.disable_functions =
phpinfo,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec
,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,
pfsockopen,openlog,syslog,rea dlink,symlink,popepassthru,stream_socket_server,
get_current_user,leak,putenv,popen,opendir
这类函数能禁止就禁止
2.设置“safe_mode”为“on”
3.禁止“open_basedir” 可以禁止指定目录之外的文件操作
4.expose_php设为off 这样php不会在http文件头中泄露信息
5.设置“allow_url_fopen”为“off” 可禁止远程文件功能
6.“log_errors”设为“on” 错误日志开启
php编码方面 要注意的问题如下:
1.要有“用户提交的信息皆危险”的意识 所有用户提交的信息 不管是表单传的 post get 或是其他形式提交的数据 都要单独写个过滤函数处理一遍,养成习惯,用户提交的 都用这个函数过一遍,主要是过滤特殊字符,strip_tags很有效, 如果没有get_magic_quotes_gpc 要用这个函数mysql_real_escape_string再过滤一遍,确保安全,当然有特殊要求的,大可自己再弄严格点的过滤过程。这一步做好了,可大大减少代码出现漏洞的机会。
2.检查程序逻辑的漏洞,不要犯低级的逻辑错误。
3.如果怀疑程序被放了后门 大可先检查有没有一句话木马 eval($_POST[ 全站搜索php代码有没有这样的源代码,有的话,几乎可以断定会出问题!
4.平时php文件要命名规范 至少让自己可以一目了然,哪些php文件名字有问题
5.如用开源代码,有补丁出来的话,尽快打上补丁。
6.如果攻击者拿到了服务器的最高权限,有可能通过修改服务器的配置文件php.ini来达到他们隐藏后门的目的,前几年比较流行。原理如下:
php.ini 里面的这两个配置项:auto_prepend_file ,auto_append_file 可以让php解析前,自己加点东西进去 Automatically add files before or after any PHP document
如果被配置了eval()函数的后门 那就很阴险了,php文件代码里面查不出,只会在php解析前包含eval()函数进来 并且因为是全局的 所以所有php页面都是后门!
所以要先确认auto_prepend_file ,auto_append_file没被配置成其他东西,才进行第3点的源代码检查。
7.两个查后门的实用linux命令:
find /data/web/website/ -iname *.php -mtime -35 找出/data/web/website/目录下 35分钟前新建的php
find /data/web/website/ -name “*.php” | xargs grep “eval($_POST[” 找出/data/web/website/ 里面源码包含eval($_POST[的php文件
这周总结了部分php安全方面的知识,就算浅薄,权当亡羊补牢也好,先记下来,以供日后参考。
php.ini 设置
1.disable_functions =
phpinfo,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec
,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,
pfsockopen,openlog,syslog,rea dlink,symlink,popepassthru,stream_socket_server,
get_current_user,leak,putenv,popen,opendir
这类函数能禁止就禁止
2.设置“safe_mode”为“on”
3.禁止“open_basedir” 可以禁止指定目录之外的文件操作
4.expose_php设为off 这样php不会在http文件头中泄露信息
5.设置“allow_url_fopen”为“off” 可禁止远程文件功能
6.“log_errors”设为“on” 错误日志开启
php编码方面 要注意的问题如下:
1.要有“用户提交的信息皆危险”的意识 所有用户提交的信息 不管是表单传的 post get 或是其他形式提交的数据 都要单独写个过滤函数处理一遍,养成习惯,用户提交的 都用这个函数过一遍,主要是过滤特殊字符,strip_tags很有效, 如果没有get_magic_quotes_gpc 要用这个函数mysql_real_escape_string再过滤一遍,确保安全,当然有特殊要求的,大可自己再弄严格点的过滤过程。这一步做好了,可大大减少代码出现漏洞的机会。
2.检查程序逻辑的漏洞,不要犯低级的逻辑错误。
3.如果怀疑程序被放了后门 大可先检查有没有一句话木马 eval($_POST[ 全站搜索php代码有没有这样的源代码,有的话,几乎可以断定会出问题!
4.平时php文件要命名规范 至少让自己可以一目了然,哪些php文件名字有问题
5.如用开源代码,有补丁出来的话,尽快打上补丁。
6.如果攻击者拿到了服务器的最高权限,有可能通过修改服务器的配置文件php.ini来达到他们隐藏后门的目的,前几年比较流行。原理如下:
php.ini 里面的这两个配置项:auto_prepend_file ,auto_append_file 可以让php解析前,自己加点东西进去 Automatically add files before or after any PHP document
如果被配置了eval()函数的后门 那就很阴险了,php文件代码里面查不出,只会在php解析前包含eval()函数进来 并且因为是全局的 所以所有php页面都是后门!
所以要先确认auto_prepend_file ,auto_append_file没被配置成其他东西,才进行第3点的源代码检查。
7.两个查后门的实用linux命令:
find /data/web/website/ -iname *.php -mtime -35 找出/data/web/website/目录下 35分钟前新建的php
find /data/web/website/ -name “*.php” | xargs grep “eval($_POST[” 找出/data/web/website/ 里面源码包含eval($_POST[的php文件
相关文章推荐
- 一种奇特的DEDE隐藏后门办法(dedecms漏洞90sec.php文件)
- php漏洞php后门浅析以及防范措施
- Nginx+PHP 配置漏洞:静态文件都可以当作 PHP 解析
- Nginx+PHP 配置漏洞:静态文件都可以当作 PHP 解析
- Nginx+PHP 配置漏洞:静态文件都可以当作 PHP 解析
- Nginx+PHP 配置漏洞:静态文件都可以当作 PHP 解析
- 修改PHP配置文件以解决 泄露物理地址 的漏洞
- php.ini上传大文件的配置
- CI框架源码阅读,系统常量文件constants.php的配置
- config.inc.php配置文件介绍
- NetBeans 运行php文件 提示无法通过外部浏览器访问URL 检查浏览器配置
- php大文件上传php.ini配置
- linux中查看nginx、apache、php、mysql配置文件路径的方法
- centos 7.2 安装Nginx 及配置php-fpm识别php文件
- PHP配置文件中session.save_path负责session文件的存放位置
- php配置文件php.ini中文详解
- 浅谈web上存漏洞及原理分析、防范方法(安全文件上存方法)
- 【php】php.ini配置文件中output_buffering设置
- phpMyAdmin配置文件config.inc.php详解
- PHP文件包含漏洞原理分析和利用方法