php专区

 首页 > php专区 > PHP应用 > 常用功能 > 几种防御PHP程序被木马攻击配置详解方法 - php高

几种防御PHP程序被木马攻击配置详解方法 - php高

分享到:
【字体:
导读:
          1,防止跳出web目录首先修改httpd.conf,如果你只允许你的php脚本程序在web目录里操作,还可以修改httpd.conf文件限制php的操作路径,比如你的web目录是/usr/local/apache/htdocs,那么在httpd.conf里加......

几种防御PHP程序被木马攻击配置详解方法

1,防止跳出web目录

首先修改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 in effect. file is in wrong directory in

/usr/local/apache/htdocs/open.php on line 4 等等.

2、防止php木马执行webshell

打开safe_mode,在,php.ini中设置

disable_functions= passthru,exec,shell_exec,system

二者选一即可,也可都选.

3、防止php木马读写文件目录

在php.ini中的disable_functions= passthru,exec,shell_exec,system,后面加上php处理文件的函数,主要有:

  1.   fopenmkdirrmdirchmod,unlink,dir 
  2.  
  3.   fopenfread,fclose,fwrite,file_exists 
  4.  
  5.   closediris_dir,readdir.opendir 
  6.  
  7.   fileperms.copy,unlink,delfile 
  8.  
  9.   //即成为 
  10.  
  11.   disable_functions= passthruexec,shell_exec,system,fopenmkdirrmdirchmod,unlink,dir 
  12. //开源代码phpfensi.com 
  13.   ,fopenfread,fclose,fwrite,file_exists 
  14.  
  15.   ,closediris_dir,readdir.opendir 
  16.  
  17.   ,fileperms.copy,unlink,delfile 

ok,大功告成,php木马拿我们没辙了,遗憾的是这样的话,利用文本数据库教程的那些东西就都不能用了.

如果是在windos平台下搭建的apache我们还需要注意一点,apache默认运行是system权限,这很恐怖,这让人感觉很不爽,那我们就给apache降降权限吧.

net user apache fuckmicrosoft /add

net localgroup users apache /del

ok.我们建立了一个不属于任何组的用户apche,我们打开计算机管理器,选服务,点apache服务的属性,我们选择log on,选择this account,我们填入上面所建立的账户和密码,重启apache服务,ok,apache运行在低权限下了.

实际上我们还可以通过设置各个文件夹的权限,来让apache用户只能执行我们想让它能干的事情,给每一个目录建立一个单独能读写的用户,这也是当前很多虚拟主机提供商的流行配置方法,不过这种方法用于防止这里就显的有点大材小用了.

分享到:
PHP加密解密内部算法 - php高级应用
PHP加密解密内部算法   以下是一些示例…加深对这三个加密解密函数的理解… //string.php    //array.php    关键的地方来了…当你要跳转到另外一个网址,但又要保证你的session无误的时候,你需要对session作一个处理.貌似一个公司有一个网站又有一个论坛,两个...
php安全之防注入详细介绍 - php高级应用
php安全之防注入详细介绍 我们知道Web上提交数据有两种方式,一种是get、一种是post,那么很多常见的sql注射就是从get方式入手的,而且注射的语句里面一定是包含一些sql语句的,因为没有sql语句,那么如何进行,sql语句有四大句:select、update、delete、insert. 那么我们如果在我们提交的数据中进...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……