首先修改httpd.conf,如果你只允许你的php脚本程序在web目录里操作,还可以修改httpd.conf文件限制php的操作路径。比如你的web目录是/usr/local/apache/htdocs,那么在httpd.conf里加上这么几行:
& ~$ X$ `% {. W5 `: ? php_admin_value open_basedir /usr/local/apache/htdocs) e8 h# ]& g) y. u
6 D' ]/ k; v; |+ ] 这样,如果脚本要读取/usr/local/apache/htdocs以外的文件将不会被允许,如果错误显示打开的话会提示这样的错误:$ z! X6 K, U- I% o
Warning: open_basedir restriction in effect. File is in wrong directory in' r+ a, J0 ?# @" y# {1 ?
/usr/local/apache/htdocs/open.php on line 4
* x7 c. f! s9 W# i+ |8 h8 F r 等等。
. q5 x+ Z. c- i6 ]7 t( U1 e3 Y 2.防止php木马执行webshell* F) h3 S! q+ Q9 I2 _9 Z# _. v
打开safe_mode,
{9 T1 Y8 o9 j3 V- j$ X0 v 在,php.ini中设置9 U8 [! i1 N; p
disable_functions= passthru,exec,shell_exec,system
/ }$ A. N- _: M* [ 二者选一即可,也可都选 # H1 N6 d) M) ~2 K. ]
3.防止php木马读写文件目录 7 t, f7 I! D9 s7 _
在php.ini中的9 x( o% ]/ P0 R) O# e2 r- l C! W! V
disable_functions= passthru,exec,shell_exec,system & U7 R d' }6 O9 }
后面加上php处理文件的函数
5 z+ q. c" a) z/ e O9 u 主要有 Y0 ~3 W9 N) ]% T( q
fopen,mkdir,rmdir,chmod,unlink,dir: }$ e$ R& N! z' S2 G- m
fopen,fread,fclose,fwrite,file_exists' C" D9 B$ t- N2 X% B: r
closedir,is_dir,readdir.opendir7 c1 ^ Y$ U2 B" l+ f/ `
fileperms.copy,unlink,delfile
& b3 l8 h7 ? s; Q( U 即成为* T! K- E9 C& R3 s( M4 {4 |
disable_functions= passthru,exec,shell_exec,system,fopen,mkdir,rmdir,chmod,unlink,dir
7 V4 {; t- [) X8 O8 Z& V ,fopen,fread,fclose,fwrite,file_exists
7 v8 w& H' U- g. X* Q ,closedir,is_dir,readdir.opendir: \- I4 k& s: W" D% X4 m3 Z
,fileperms.copy,unlink,delfile7 m; K( a% }9 O$ L$ K. v
ok,大功告成,php木马拿我们没辙了,^_^
! ]3 t$ V6 S# P3 q/ \7 a9 I 遗憾的是这样的话,利用文本数据库的那些东西就都不能用了。 # s4 l, I7 h* S8 y
如果是在windos平台下搭建的apache我们还需要注意一点,apache默认运行是system权限,这很恐怖,这让人感觉很不爽.那我们就给apache降降权限吧.
/ S& G1 k4 m. U) l9 Q# @ net user apache ****microsoft /add
$ o7 v. @" r1 A9 o! T7 h: j net localgroup users apache /del * y- }7 U7 `0 L8 p( F5 Z
ok.我们建立了一个不属于任何组的用户apche.
5 W- ?, x9 L. I+ Q4 Y$ m8 T 我们打开计算机管理器,选服务,点apache服务的属性,我们选择log on ,选择this account ,我们填入上面所建立的账户和密码,重启apache服务,ok,apache运行在低权限下了.1 h# m/ [) I1 M; s
实际上我们还可以通过设置各个文件夹的权限,来让apache用户只能执行我们想让它能干的事情,给每一个目录建立一个单独能读写的用户.这也是当前很多虚拟主机提供商的流行配置方法哦,不过这种方法用于防止这里就显的有点大材小用了。
- J1 v- D3 c) ~/ K% |" d |