首先修改httpd.conf,如果你只允许你的php脚本程序在web目录里操作,还可以修改httpd.conf文件限制php的操作路径。比如你的web目录是/usr/local/apache/htdocs,那么在httpd.conf里加上这么几行: 2 L1 S; H0 A& V" J
php_admin_value open_basedir /usr/local/apache/htdocs- [/ w3 a8 r7 }, z" X' c! p% @
3 t) A, V* a. E6 ]/ m
这样,如果脚本要读取/usr/local/apache/htdocs以外的文件将不会被允许,如果错误显示打开的话会提示这样的错误:
6 W( w) ]* j+ U; O Warning: open_basedir restriction in effect. File is in wrong directory in
8 U* p. [3 D6 H& [3 L9 e /usr/local/apache/htdocs/open.php on line 4# U8 ]/ x/ ^4 L& f
等等。
0 r5 _; Y5 E6 W, O \ 2.防止php木马执行webshell; V+ X0 O$ m1 K9 n3 g
打开safe_mode,
; l' @6 ?$ d1 Z5 D" F 在,php.ini中设置7 K: H: P; g: z7 A% s1 I/ ?
disable_functions= passthru,exec,shell_exec,system
; Q& S# G8 J; I/ n. E- [8 e 二者选一即可,也可都选
1 D+ A: X D$ [2 i9 p( | 3.防止php木马读写文件目录
- q9 [+ D" D9 n- `' [3 `+ q- k 在php.ini中的
2 v' X9 X1 E! h# r disable_functions= passthru,exec,shell_exec,system
/ _. @: D( F |% R7 v% n 后面加上php处理文件的函数
5 ~) a- A% a( i; [8 ^ 主要有: N% c5 h3 `: S9 ]
fopen,mkdir,rmdir,chmod,unlink,dir5 z3 S4 P1 R( G1 i6 F2 |& A8 g. A
fopen,fread,fclose,fwrite,file_exists4 J/ S* d2 u9 v8 ]' w! `. H, J
closedir,is_dir,readdir.opendir) o# {& g1 X s5 \
fileperms.copy,unlink,delfile
* _( B; v5 G7 b7 _4 ^2 ]5 O% M9 B! \& F 即成为
2 n' k; g: k$ w1 F disable_functions= passthru,exec,shell_exec,system,fopen,mkdir,rmdir,chmod,unlink,dir! j4 B0 Z- ]) F. z
,fopen,fread,fclose,fwrite,file_exists9 V% _+ _ K+ \- H, e) l4 s
,closedir,is_dir,readdir.opendir* T) ?/ O; e8 A1 i
,fileperms.copy,unlink,delfile* D# {6 c& i0 |$ ~: S7 W
ok,大功告成,php木马拿我们没辙了,^_^& { K, S4 e0 N9 D. t7 K4 Z( f
遗憾的是这样的话,利用文本数据库的那些东西就都不能用了。
2 b$ h1 W, W2 @( o, N1 [6 v 如果是在windos平台下搭建的apache我们还需要注意一点,apache默认运行是system权限,这很恐怖,这让人感觉很不爽.那我们就给apache降降权限吧.
4 Z) N+ i- Q+ g; G2 L& v) ] net user apache ****microsoft /add 5 U& Q7 |1 @' A, n
net localgroup users apache /del . \ D- c2 V, j; a- |
ok.我们建立了一个不属于任何组的用户apche. 5 Z, Z5 h v7 [
我们打开计算机管理器,选服务,点apache服务的属性,我们选择log on ,选择this account ,我们填入上面所建立的账户和密码,重启apache服务,ok,apache运行在低权限下了.0 R7 {- G- m3 ^5 y8 T) |: Q8 O6 _
实际上我们还可以通过设置各个文件夹的权限,来让apache用户只能执行我们想让它能干的事情,给每一个目录建立一个单独能读写的用户.这也是当前很多虚拟主机提供商的流行配置方法哦,不过这种方法用于防止这里就显的有点大材小用了。 ) o2 `/ y+ a9 m/ n% @
|