首先修改httpd.conf,如果你只允许你的php脚本程序在web目录里操作,还可以修改httpd.conf文件限制php的操作路径。比如你的web目录是/usr/local/apache/htdocs,那么在httpd.conf里加上这么几行: * p: B! \0 U& u* S
php_admin_value open_basedir /usr/local/apache/htdocs! T9 Y( @/ x; q/ D- B/ _
( K( H/ e1 P3 K2 B( w9 _) h
这样,如果脚本要读取/usr/local/apache/htdocs以外的文件将不会被允许,如果错误显示打开的话会提示这样的错误:
$ j3 c" @+ g' ^+ i Warning: open_basedir restriction in effect. File is in wrong directory in
* Y/ Z% S+ _: f9 k, N: l6 T; J /usr/local/apache/htdocs/open.php on line 41 K; F1 X) {8 E! [) ~
等等。
" N- h) e, C H" {# C- R" L+ S3 f _% _ 2.防止php木马执行webshell
% C! N+ U# p( i( g$ _ 打开safe_mode,
* }8 h& s) s- k8 ]% m$ _ 在,php.ini中设置
- k: w- G" k. m6 u; i! P9 ] disable_functions= passthru,exec,shell_exec,system + r0 P c; G! v3 f c
二者选一即可,也可都选 6 P/ D; i9 C9 h. x. ~: z
3.防止php木马读写文件目录 . \" N" M+ @. J( W& K0 @# P4 S
在php.ini中的) a' [& B. q! n9 ~0 m1 A1 }
disable_functions= passthru,exec,shell_exec,system 5 }% }. L4 E- d0 X! l, [
后面加上php处理文件的函数* _8 T$ }1 B8 z6 ]
主要有6 b' s0 ?6 ~3 e4 h- U
fopen,mkdir,rmdir,chmod,unlink,dir2 f7 Y, X' y# g) A8 a( g- H& W
fopen,fread,fclose,fwrite,file_exists
3 x3 b# ]* z1 _' x1 g' _& g closedir,is_dir,readdir.opendir( ^7 W; \$ x7 \' u7 R
fileperms.copy,unlink,delfile
* q5 e. c2 s1 ^- @1 X6 T 即成为
Y( \! r5 W5 }7 O+ n. q/ |! [) Z7 j disable_functions= passthru,exec,shell_exec,system,fopen,mkdir,rmdir,chmod,unlink,dir
* V- U0 S1 E% R x$ M) P ,fopen,fread,fclose,fwrite,file_exists1 |9 c$ }% P% a- i( X3 O8 v" }
,closedir,is_dir,readdir.opendir" j @# A: H2 d/ J6 x1 N3 q4 U
,fileperms.copy,unlink,delfile2 r& |7 C' H+ S# A% u8 n$ g
ok,大功告成,php木马拿我们没辙了,^_^
+ F. P7 v9 U- M# A/ ^- Q' g 遗憾的是这样的话,利用文本数据库的那些东西就都不能用了。 # D% S; _- V9 p7 s! A. H
如果是在windos平台下搭建的apache我们还需要注意一点,apache默认运行是system权限,这很恐怖,这让人感觉很不爽.那我们就给apache降降权限吧.
2 l7 ]) f, Z, ^8 d( v net user apache ****microsoft /add / ~" B6 `) _. i" R2 h# R* F
net localgroup users apache /del
3 P" [. _- e" V7 E2 @- B: N- x ok.我们建立了一个不属于任何组的用户apche.
* c" l8 \# X7 e0 Y5 Y 我们打开计算机管理器,选服务,点apache服务的属性,我们选择log on ,选择this account ,我们填入上面所建立的账户和密码,重启apache服务,ok,apache运行在低权限下了.* u" {# O( y0 L9 t" n
实际上我们还可以通过设置各个文件夹的权限,来让apache用户只能执行我们想让它能干的事情,给每一个目录建立一个单独能读写的用户.这也是当前很多虚拟主机提供商的流行配置方法哦,不过这种方法用于防止这里就显的有点大材小用了。
+ e! p# m( z; F* Y" [ |