首先修改httpd.conf,如果你只允许你的php脚本程序在web目录里操作,还可以修改httpd.conf文件限制php的操作路径。比如你的web目录是/usr/local/apache/htdocs,那么在httpd.conf里加上这么几行:
3 `3 ]3 r1 F; ~/ \" ^4 F php_admin_value open_basedir /usr/local/apache/htdocs' `8 t8 M# l) \7 d8 q; I
# j: X, G5 B$ |9 D 这样,如果脚本要读取/usr/local/apache/htdocs以外的文件将不会被允许,如果错误显示打开的话会提示这样的错误:
+ S. Z/ C* m% Z3 ] Warning: open_basedir restriction in effect. File is in wrong directory in
% H% Z: M6 k) e /usr/local/apache/htdocs/open.php on line 4) R) h3 U/ p7 X' }
等等。7 D: a9 B8 D6 g
2.防止php木马执行webshell
; Z' R5 T( n6 E# w% e8 f3 `% D 打开safe_mode,9 R5 K, I9 ]: @ D o6 j a4 c4 }
在,php.ini中设置. g" N$ c( S0 B3 i8 w' d" d. ]
disable_functions= passthru,exec,shell_exec,system 6 P* U k( s# L% D9 V u. H# f( a
二者选一即可,也可都选
* Y4 |& u- l5 c) Z( W& x 3.防止php木马读写文件目录
0 O) F3 b+ P# f+ R, D; U0 l$ z 在php.ini中的
[& y6 i, P# W& [ disable_functions= passthru,exec,shell_exec,system / H% ]0 {; O1 R3 \4 C+ ]
后面加上php处理文件的函数
1 G/ x2 s9 I2 e: J( }+ c: J 主要有4 C) f$ m. `0 S
fopen,mkdir,rmdir,chmod,unlink,dir5 s0 b/ m& J. D- t, X6 m
fopen,fread,fclose,fwrite,file_exists; `. F, ~4 S& N) x
closedir,is_dir,readdir.opendir
z2 s2 _ ?8 p9 e4 Y fileperms.copy,unlink,delfile3 p& ~; K# k! m4 a4 b; a1 S1 X
即成为
$ s( f+ G6 ~5 r$ e; U0 W2 k disable_functions= passthru,exec,shell_exec,system,fopen,mkdir,rmdir,chmod,unlink,dir$ Q {' T. e. A
,fopen,fread,fclose,fwrite,file_exists
# m0 P+ J: ~$ D1 Q ,closedir,is_dir,readdir.opendir* F5 _# ~8 L% p( t
,fileperms.copy,unlink,delfile
5 @3 x5 L$ T! _ N ok,大功告成,php木马拿我们没辙了,^_^
+ a- R1 b" X8 E" Q) Z# Y) S( s 遗憾的是这样的话,利用文本数据库的那些东西就都不能用了。 0 E8 O0 w) K" w8 S* c; b: D
如果是在windos平台下搭建的apache我们还需要注意一点,apache默认运行是system权限,这很恐怖,这让人感觉很不爽.那我们就给apache降降权限吧. : d0 r3 l. ^! h+ t
net user apache ****microsoft /add \5 D# z. @2 F: s) y5 t- `, ~" y
net localgroup users apache /del . h/ P! Y4 m- Q" Y6 J! u# p& [" u
ok.我们建立了一个不属于任何组的用户apche.
" z3 r* C) M e _& d! y4 S 我们打开计算机管理器,选服务,点apache服务的属性,我们选择log on ,选择this account ,我们填入上面所建立的账户和密码,重启apache服务,ok,apache运行在低权限下了.
& G: @: e2 `; \/ J" F 实际上我们还可以通过设置各个文件夹的权限,来让apache用户只能执行我们想让它能干的事情,给每一个目录建立一个单独能读写的用户.这也是当前很多虚拟主机提供商的流行配置方法哦,不过这种方法用于防止这里就显的有点大材小用了。
9 w* u. H: f: J4 E+ W9 f/ e# D |