首先修改httpd.conf,如果你只允许你的php脚本程序在web目录里操作,还可以修改httpd.conf文件限制php的操作路径。比如你的web目录是/usr/local/apache/htdocs,那么在httpd.conf里加上这么几行: 1 W- W. n9 L" U/ g) {. C
php_admin_value open_basedir /usr/local/apache/htdocs
. t- y) d8 F B; n0 @
9 u4 x7 W) l D6 [2 I6 N4 F( ~ 这样,如果脚本要读取/usr/local/apache/htdocs以外的文件将不会被允许,如果错误显示打开的话会提示这样的错误:
: C) M, A4 j0 \6 G' ~ Warning: open_basedir restriction in effect. File is in wrong directory in5 |1 n: m! F! `- ^7 z7 V
/usr/local/apache/htdocs/open.php on line 4+ a% G( k$ S3 O- E9 C* C; a
等等。- d% Y" ~: h7 E+ O9 @& D. ~
2.防止php木马执行webshell
9 ^& T5 _0 i7 A; J% n7 e 打开safe_mode,
0 [" A% L" G; F 在,php.ini中设置
& q% p9 V; r5 p2 @9 ]# J4 B disable_functions= passthru,exec,shell_exec,system
0 L" T' n' Y$ x/ v8 @ z( o 二者选一即可,也可都选
# `8 Q. K+ I- d) q8 l$ w7 k, @2 x 3.防止php木马读写文件目录
! u2 N* x/ j# G/ X4 [' \2 a1 |8 b 在php.ini中的) ~6 A; o+ Q: z3 I4 C
disable_functions= passthru,exec,shell_exec,system ( ?* {" z) }7 t8 l9 i0 I/ w' U8 J
后面加上php处理文件的函数
# r" E0 C( B9 B( \' U* \ 主要有/ l, |" q; P1 X) m5 W. T
fopen,mkdir,rmdir,chmod,unlink,dir
5 @" r! s ?) L0 r0 r fopen,fread,fclose,fwrite,file_exists! h. q7 a# H' C, l/ D+ q
closedir,is_dir,readdir.opendir8 |1 V& v# A+ z: E! Y* j
fileperms.copy,unlink,delfile6 b0 }( v2 l: d9 u4 y- k; D
即成为4 h6 v" m$ y8 J. Q
disable_functions= passthru,exec,shell_exec,system,fopen,mkdir,rmdir,chmod,unlink,dir9 |5 v' J8 P$ [9 d
,fopen,fread,fclose,fwrite,file_exists
! o7 g) R8 z8 r' A6 D1 i ,closedir,is_dir,readdir.opendir
" f! m, [9 Z" c' \ ,fileperms.copy,unlink,delfile
3 I+ a4 I5 _2 Q0 U3 ^1 o9 w1 s ok,大功告成,php木马拿我们没辙了,^_^
' y0 O- m9 ^" G6 }7 F9 o 遗憾的是这样的话,利用文本数据库的那些东西就都不能用了。
% }0 w7 Q/ l; `; `# i$ m 如果是在windos平台下搭建的apache我们还需要注意一点,apache默认运行是system权限,这很恐怖,这让人感觉很不爽.那我们就给apache降降权限吧.
# s+ R0 j' s+ w6 X, q0 Q net user apache ****microsoft /add
& g/ s! a1 ^, W) W( j net localgroup users apache /del . n- O- M, ?7 r, }3 o! Z2 v
ok.我们建立了一个不属于任何组的用户apche.
. s6 T; G% H5 Q9 i 我们打开计算机管理器,选服务,点apache服务的属性,我们选择log on ,选择this account ,我们填入上面所建立的账户和密码,重启apache服务,ok,apache运行在低权限下了.
7 B' y6 f9 r4 e- _, Q4 Y- a) T 实际上我们还可以通过设置各个文件夹的权限,来让apache用户只能执行我们想让它能干的事情,给每一个目录建立一个单独能读写的用户.这也是当前很多虚拟主机提供商的流行配置方法哦,不过这种方法用于防止这里就显的有点大材小用了。 5 p0 }$ T% x% ?
|