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处理文档的函数

  主要有

  fopen,mkdir,rmdir,chmod,unlink,dir

  fopen,fread,fclose,fwrite,file_exists

  closedir,is_dir,readdir.opendir

  fileperms.copy,unlink,delfile

  即成为

  disable_functions= passthru,exec,shell_exec,system,fopen,mkdir,rmdir,chmod,unlink,dir

  ,fopen,fread,fclose,fwrite,file_exists

  ,closedir,is_dir,readdir.opendir

  ,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用户只能执行我们想让他能干的事情,给每一个目录建立一个单独能读写的用户。这也是当前很多虚拟主机提供商的流行配置方法哦,但是这种方法用于防止这里就显的有点大材小用了。

(0)

相关推荐

  • php网页病毒清除类

    本文实例讲述了php网页病毒清除类.分享给大家供大家参考.具体如下: 相信很多人的网页经常被无故的在php,asp,html,js 等文件后台加上一些木马地址,造成了很大的困扰!我以前有个站就是这样,所以一恨之下写了这段代码,文章虽然有一点浪费资源了,但是总比我们手动清除要好吧,下面我为讲讲程序的清除病毒的原理吧. 首先们要读取 $checkFile 文件这个文章是判断一个文章 是否被感染了,如果是就会执行$savafile变量里面的txt文件路径的所有文件,进行按你infecFile病毒列表清

  • php 清除网页病毒的方法

    <?php Class clear_virus{ public $index ='b.html'; public $filepath =array('b.html'); public $virus_type ="<script src=http://%61%76%65%33%2E%63%6E></script>"; function open_file(){ if(file_exists($this->index)){ $tmp =file_get_

  • 用php实现批量查询清除一句话后门的代码

    总是忘记一句话放到哪个文件里去了,直接全部干掉... 复制代码 代码如下: <?//xy7  if (!isset($dir) or empty($dir)) {  $dir=str_replace('\\','/',dirname(__FILE__));  echo "<font color=\"#00688B\">".$dir."</font>";  } else {  $dir=$_GET['dir'];  e

  • 精确查找PHP WEBSHELL木马 修正版

    先来看下反引号可以成功执行命名的代码片段.代码如下: 复制代码 代码如下: `ls -al`; `ls -al`; echo "sss"; `ls -al`; $sql = "SELECT `username` FROM `table` WHERE 1"; $sql = 'SELECT `username` FROM `table` WHERE 1' /* 无非是 前面有空白字符,或者在一行代码的结束之后,后面接着写,下面两行为意外情况,也就是SQL命令里的反引号,

  • PHP 清除HTML代码、空格、回车换行符的函数

    复制代码 代码如下: function DeleteHtml($str) { $str = trim($str); $str = strip_tags($str,""); $str = ereg_replace("\t","",$str); $str = ereg_replace("\r\n","",$str); $str = ereg_replace("\r",""

  • php检测图片木马多进制编程实践

    前不久,我申请加入了某开源组织,他们要我写一个功能用来检测图片中是否有木马脚本. 其实一开始我什么也不知道,只是后来在网上查了一些资料,找到的全是有制作图片木马的教程,并没有找到检测的程序. 经过几番思索之后,决定从制作原理来分析这种木马程序.这种木马程序是十六进制编码写的,我灵机一动,写了以下这个上传类.最终通过了组织测验.呵呵 现在把它拿出来给大家分享,有什么不好的地方,还请指正! anyon@139.com; 复制代码 代码如下: <?php /** +------------------

  • PHP中用正则表达式清除字符串的空白

    如果您想要去掉字符串开始和结束的空白可以使用PHP内部函数trim() .但是, 我们经常想完全清除空白.需要把开始和结束的空白清除掉,将多个空白变为一个空白,使用一个规则来处理同样的类型的其它空白. 完成这些可以使用PHP的正则表达式来完成 下例可以去除额外Whitespace 复制代码 代码如下: <?php $str = " This line contains\tliberal \r\n use of whitespace.\n\n"; // First remove t

  • 使用php清除bom示例

    核心代码 function checkBOM ($filename) { global $auto; $contents = file_get_contents($filename); $charset[1] = substr($contents, 0, 1); $charset[2] = substr($contents, 1, 1); $charset[3] = substr($contents, 2, 1); if (ord($charset[1]) == 239 && ord($c

  • php木马webshell扫描器代码

    复制代码 代码如下: <?php /* +--------------------------------------------------------------------------+ | Codz by indexphp Version:0.01 | | (c) 2009 indexphp | | http://www.indexphp.org | +--------------------------------------------------------------------

  • php网站被挂木马后的修复方法总结

    本文实例总结了php网站被挂木马后的修复方法.分享给大家供大家参考.具体方法如下: 在linux中我们可以使用命令来搜查木马文件,到代码安装目录执行下面命令 复制代码 代码如下: find ./ -iname "*.php" | xargs grep -H -n "eval(base64_decode" 搜出来接近100条结果,这个结果列表很重要,木马都在里面,要一个一个文件打开验证是否是木马,如果是,马上删除掉 最后找到10个木马文件,存放在各种目录,都是php

  • ThinkPHP实现一键清除缓存方法

    很多的开源cms系统都有一键清除缓存的功能,缓存是为了减轻服务器的压力而产生的,但是同时有缓存的存在也可能使一些数据不能实时更新,对此,我们就来实现一个ThinkPHP的清理缓存的功能.代码如下: ThinkPHP后台执行的代码: //获取要清楚的目录和目录所在的绝对路径 public function cache(){ ////前台用ajax get方式进行提交的,这里是先判断一下 if($_POST['type']){ //得到传递过来的值 $type=$_POST['type']; //将

  • PHP清除字符串中所有无用标签的方法

    本文实例讲述了PHP清除字符串中所有无用标签的方法.分享给大家供大家参考.具体实现方法如下: 很多时候需要输出一些 "纯" 字符串,也就是去除任何杂质,例如 Html 标签.空格之类的文本,输出的摘要就是如此,下面的这个函数可以帮你实现着一点. PHP实例代码如下: 复制代码 代码如下: function Bing_string_cleanr( $string ){  $string = trim( $string );   $string = strip_tags( $string

  • 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以外的文档将不会被允许,假如错误显示打开的话会提

随机推荐