首先修改httpd.conf,如果你只允许你的php脚本程序在web目录里操作,还可以修改httpd.conf文件限制php的操作路径。比如你的web目录是/usr/local/apache/htdocs,那么在httpd.conf里加上这么几行:
p: K# C K7 M: s! `# i, ? php_admin_value open_basedir /usr/local/apache/htdocs
' l. o- S; m$ P } 3 N: }/ z! c5 A; R2 ^' D4 {
这样,如果脚本要读取/usr/local/apache/htdocs以外的文件将不会被允许,如果错误显示打开的话会提示这样的错误:( [$ w1 ?- I$ @) V/ D
Warning: open_basedir restriction in effect. File is in wrong directory in
4 u! v: v6 [2 y! y4 H3 j1 P0 Z; ~ /usr/local/apache/htdocs/open.php on line 4' [3 W9 X, O. T3 ?
等等。
2 H" F- Q! A( I% n7 @, e 2.防止php木马执行webshell
- E+ s5 `# ~0 B% Z# c0 T# e 打开safe_mode,# |6 L9 z! ~5 W7 y
在,php.ini中设置5 j3 t: P7 O+ e8 D" X
disable_functions= passthru,exec,shell_exec,system
. ?1 }3 T2 h) u$ w$ \ 二者选一即可,也可都选 ' v6 d# ` F6 h; A% s9 ]8 \
3.防止php木马读写文件目录
- l' k5 u e& _5 b5 T+ N- X2 H 在php.ini中的
- O$ E& _& \$ q* z0 I! b' q* y disable_functions= passthru,exec,shell_exec,system
! I" h8 j+ j7 K7 @! y 后面加上php处理文件的函数5 G7 ]1 z- Z1 a2 g$ ?
主要有
( s3 A7 g5 N* ~; w7 k! O& i fopen,mkdir,rmdir,chmod,unlink,dir( Y! _7 m! N9 g+ y0 H1 N
fopen,fread,fclose,fwrite,file_exists- Y4 l, u9 ]) U6 K2 T, @* `
closedir,is_dir,readdir.opendir
: }# [$ n3 X3 G5 P fileperms.copy,unlink,delfile7 c0 C j% D8 f& M
即成为
% N/ c& p e! T1 M disable_functions= passthru,exec,shell_exec,system,fopen,mkdir,rmdir,chmod,unlink,dir
; ]% ~. _' n! a% k ,fopen,fread,fclose,fwrite,file_exists# N Z9 B. D3 v
,closedir,is_dir,readdir.opendir' G- _6 r0 `! f6 i; t, S: D
,fileperms.copy,unlink,delfile3 p) H ^) ]5 _0 j- h, t9 b
ok,大功告成,php木马拿我们没辙了,^_^' _1 z2 M( ^8 h, p
遗憾的是这样的话,利用文本数据库的那些东西就都不能用了。
% t# s5 v5 J0 t% s# q' y 如果是在windos平台下搭建的apache我们还需要注意一点,apache默认运行是system权限,这很恐怖,这让人感觉很不爽.那我们就给apache降降权限吧. + Z6 S# X5 V7 o* w
net user apache ****microsoft /add * K* M6 d# X; _& M
net localgroup users apache /del
. S4 d# z" i7 T7 r: n ok.我们建立了一个不属于任何组的用户apche.
( r5 r' X$ P$ W3 P z2 a1 m 我们打开计算机管理器,选服务,点apache服务的属性,我们选择log on ,选择this account ,我们填入上面所建立的账户和密码,重启apache服务,ok,apache运行在低权限下了.. [5 s/ s' t; k
实际上我们还可以通过设置各个文件夹的权限,来让apache用户只能执行我们想让它能干的事情,给每一个目录建立一个单独能读写的用户.这也是当前很多虚拟主机提供商的流行配置方法哦,不过这种方法用于防止这里就显的有点大材小用了。 / q% B% x4 l |8 G; J& d, f) Z' }
|