首先修改httpd.conf,如果你只允许你的php脚本程序在web目录里操作,还可以修改httpd.conf文件限制php的操作路径。比如你的web目录是/usr/local/apache/htdocs,那么在httpd.conf里加上这么几行:
0 ]' X3 v" p. ^( _1 q3 p php_admin_value open_basedir /usr/local/apache/htdocs
9 ^' w7 |! Q. x
7 p7 ^0 U( ~3 M1 ]/ J% k3 J: J5 u 这样,如果脚本要读取/usr/local/apache/htdocs以外的文件将不会被允许,如果错误显示打开的话会提示这样的错误:8 }+ P8 w% P4 u
Warning: open_basedir restriction in effect. File is in wrong directory in3 ]9 t+ f' ]3 \. Q
/usr/local/apache/htdocs/open.php on line 45 |. [. ^- d$ Q5 H" a6 L
等等。4 j3 Y' Q/ ]( e; E
2.防止php木马执行webshell& M7 N5 B% f/ j+ W
打开safe_mode,6 R; `% m9 w, q" m' v
在,php.ini中设置& M8 s1 z" T1 R" Y7 m0 k6 X# p5 O
disable_functions= passthru,exec,shell_exec,system
% W& L5 U1 n8 g7 B9 ? 二者选一即可,也可都选 + V4 K0 z7 C2 _
3.防止php木马读写文件目录
; W2 k, X I" k) N- b0 K: c 在php.ini中的
K$ E1 ~/ A. ~. ~# q7 _) B disable_functions= passthru,exec,shell_exec,system
3 E2 X& {7 H! e7 P; F$ i 后面加上php处理文件的函数
0 n& a$ S* T( f* U2 z 主要有
* b2 z1 G9 r) X- {, u8 P8 G fopen,mkdir,rmdir,chmod,unlink,dir. R9 i1 p, F+ \/ |) j$ m
fopen,fread,fclose,fwrite,file_exists4 a+ ^' [$ e! H9 K3 T$ n% Z
closedir,is_dir,readdir.opendir
3 C7 X, I) W6 F6 x# f5 v2 N fileperms.copy,unlink,delfile
1 F7 Z- H9 g/ S) |" P+ }) J/ ^ 即成为, S* u! Y1 d$ ?" x
disable_functions= passthru,exec,shell_exec,system,fopen,mkdir,rmdir,chmod,unlink,dir
3 l1 V8 n1 s5 v, `. }6 Z! Z ,fopen,fread,fclose,fwrite,file_exists
+ d/ }6 W4 B2 o ,closedir,is_dir,readdir.opendir
) [7 l* a- N7 i. ^) h1 ^ ,fileperms.copy,unlink,delfile
/ k3 K4 p, Y7 F/ e# W ok,大功告成,php木马拿我们没辙了,^_^
! ^2 x: @/ {/ ?/ b$ s( b 遗憾的是这样的话,利用文本数据库的那些东西就都不能用了。
3 A/ `9 D( V" p$ M 如果是在windos平台下搭建的apache我们还需要注意一点,apache默认运行是system权限,这很恐怖,这让人感觉很不爽.那我们就给apache降降权限吧.
+ |0 c2 F) _/ r% l net user apache ****microsoft /add ! q4 z# o$ @+ ~3 C
net localgroup users apache /del 7 Q' ~2 J J ?9 I$ m9 B
ok.我们建立了一个不属于任何组的用户apche.
f' K- X0 `5 ?' ?7 d 我们打开计算机管理器,选服务,点apache服务的属性,我们选择log on ,选择this account ,我们填入上面所建立的账户和密码,重启apache服务,ok,apache运行在低权限下了.
8 p3 J s$ w0 Q1 `9 }; M4 p 实际上我们还可以通过设置各个文件夹的权限,来让apache用户只能执行我们想让它能干的事情,给每一个目录建立一个单独能读写的用户.这也是当前很多虚拟主机提供商的流行配置方法哦,不过这种方法用于防止这里就显的有点大材小用了。 & S" I, r/ z; p2 P1 \
|