首先修改httpd.conf,如果你只允许你的php脚本程序在web目录里操作,还可以修改httpd.conf文件限制php的操作路径。比如你的web目录是/usr/local/apache/htdocs,那么在httpd.conf里加上这么几行: 4 S$ ?1 P4 j1 o3 _1 C. v" Z/ r
php_admin_value open_basedir /usr/local/apache/htdocs
1 z6 Q* Q. E5 r" R% q7 T0 d
) x0 ^2 F' }5 h- m! X" S 这样,如果脚本要读取/usr/local/apache/htdocs以外的文件将不会被允许,如果错误显示打开的话会提示这样的错误:
7 Z. H" E$ n+ R& U2 p Warning: open_basedir restriction in effect. File is in wrong directory in1 C1 O9 d. H3 d9 M) V& F: N: E/ \
/usr/local/apache/htdocs/open.php on line 4! @* K. ~* @2 d9 N; [
等等。 P3 [0 ^: C9 r
2.防止php木马执行webshell
4 F9 x9 y: C, V& ^) m6 x; c; Y 打开safe_mode,# J8 u) \$ W) g* w/ K4 B, ?' ~
在,php.ini中设置: F5 W7 n! X; f! S' z9 P1 \( O
disable_functions= passthru,exec,shell_exec,system ' C9 t( s. [5 L8 C. X
二者选一即可,也可都选
* x% v0 p6 I* p; j" V 3.防止php木马读写文件目录 6 r; ]/ y; _+ U, J
在php.ini中的
' J$ B5 b0 [" E3 L9 d# I: A: H disable_functions= passthru,exec,shell_exec,system
' x- h* @! |# s' [, V$ R4 M& @ 后面加上php处理文件的函数
# g+ U9 p3 C" b) u 主要有
0 D6 v, @; i3 F/ E: l( Z. J fopen,mkdir,rmdir,chmod,unlink,dir
1 d4 f) j) z& r X) ] fopen,fread,fclose,fwrite,file_exists/ S' z7 [5 c1 q9 X0 j, j8 p! }
closedir,is_dir,readdir.opendir
6 X* I$ q3 ?6 A fileperms.copy,unlink,delfile0 K' b6 g$ ^' n9 Q3 @5 _! Y7 K
即成为
* K0 N3 ?6 I0 Z1 r, A6 R W1 I disable_functions= passthru,exec,shell_exec,system,fopen,mkdir,rmdir,chmod,unlink,dir
& |5 s |) e* [' b ,fopen,fread,fclose,fwrite,file_exists
' z; f9 j+ K# ^' j& L! \% l' r ,closedir,is_dir,readdir.opendir
# ^7 w4 v9 t0 W$ X2 D ,fileperms.copy,unlink,delfile2 ?( P: J9 b c7 A4 f) x" R( n
ok,大功告成,php木马拿我们没辙了,^_^
6 Q8 i1 [3 f& X* I _ 遗憾的是这样的话,利用文本数据库的那些东西就都不能用了。
( h2 u; q6 s; [, [/ ?( c 如果是在windos平台下搭建的apache我们还需要注意一点,apache默认运行是system权限,这很恐怖,这让人感觉很不爽.那我们就给apache降降权限吧. 0 }5 z- V$ `" G
net user apache ****microsoft /add
8 s6 |7 u# {# q! v' F net localgroup users apache /del
! b! A! f/ c4 t2 U ok.我们建立了一个不属于任何组的用户apche. - l x1 o# Y& f9 g
我们打开计算机管理器,选服务,点apache服务的属性,我们选择log on ,选择this account ,我们填入上面所建立的账户和密码,重启apache服务,ok,apache运行在低权限下了.* l0 ? u0 A4 P9 a6 C, `, Z
实际上我们还可以通过设置各个文件夹的权限,来让apache用户只能执行我们想让它能干的事情,给每一个目录建立一个单独能读写的用户.这也是当前很多虚拟主机提供商的流行配置方法哦,不过这种方法用于防止这里就显的有点大材小用了。 2 P$ `. d9 M9 q0 X7 a4 Y
|