首先修改httpd.conf,如果你只允许你的php脚本程序在web目录里操作,还可以修改httpd.conf文件限制php的操作路径。比如你的web目录是/usr/local/apache/htdocs,那么在httpd.conf里加上这么几行:
1 g; ~: I4 Y/ l. p1 G0 L3 |/ T php_admin_value open_basedir /usr/local/apache/htdocs
% L7 S2 S+ r/ O! M 7 ^) S- q/ Z% x/ j
这样,如果脚本要读取/usr/local/apache/htdocs以外的文件将不会被允许,如果错误显示打开的话会提示这样的错误:
( F- b0 N* ~9 O9 v- g; i, b Warning: open_basedir restriction in effect. File is in wrong directory in. O9 j8 i, t( g8 t- F) R) y
/usr/local/apache/htdocs/open.php on line 4% Q' d7 H2 s2 D2 h' G% `
等等。% C1 u6 E1 _1 q# I x. n
2.防止php木马执行webshell
3 u4 x6 O z7 a/ H 打开safe_mode,
( a% d: Q6 G. k7 U1 P# G" Y 在,php.ini中设置& `7 D, t' J/ j- B# ]" a/ }
disable_functions= passthru,exec,shell_exec,system
2 N* \% Q, g) _* O7 r4 { 二者选一即可,也可都选
/ f4 }. D' D, C0 L# G5 {/ Y 3.防止php木马读写文件目录
Y. o2 Y; n6 |+ T) C 在php.ini中的
7 b! P$ o( o. z! x* A disable_functions= passthru,exec,shell_exec,system
* h# d" i, \$ t* N 后面加上php处理文件的函数
5 f! K2 b& o D8 u: | 主要有8 B9 \( Q @* w2 Q/ D' ?
fopen,mkdir,rmdir,chmod,unlink,dir
) E9 O/ r m3 z; t' i8 u fopen,fread,fclose,fwrite,file_exists7 y6 f" B; |( V) R. [
closedir,is_dir,readdir.opendir
9 s$ x, I; e' h fileperms.copy,unlink,delfile
1 |6 m# N+ l6 t0 O' Z9 w 即成为, I6 K9 m% g$ ]; k: x8 ]- ?1 t
disable_functions= passthru,exec,shell_exec,system,fopen,mkdir,rmdir,chmod,unlink,dir
2 A( F0 @, A/ Q% B6 X! w2 A0 [ ,fopen,fread,fclose,fwrite,file_exists
' W. z8 k, Q7 V* G- Z ,closedir,is_dir,readdir.opendir1 |! G5 z: F( y8 @! a$ j
,fileperms.copy,unlink,delfile# F. g" J7 b7 e4 _' k
ok,大功告成,php木马拿我们没辙了,^_^
" p5 @: P$ a- z3 y8 D# m 遗憾的是这样的话,利用文本数据库的那些东西就都不能用了。
( J6 `/ t6 Z( R 如果是在windos平台下搭建的apache我们还需要注意一点,apache默认运行是system权限,这很恐怖,这让人感觉很不爽.那我们就给apache降降权限吧.
3 ], L9 ~/ @$ U net user apache ****microsoft /add 3 E }1 H( ?! y" g% U! S
net localgroup users apache /del / t) h1 d, z' J+ p$ L5 `
ok.我们建立了一个不属于任何组的用户apche. # _: y& K' l; l; t% ?
我们打开计算机管理器,选服务,点apache服务的属性,我们选择log on ,选择this account ,我们填入上面所建立的账户和密码,重启apache服务,ok,apache运行在低权限下了., |& S! i% o& p) v2 S3 P
实际上我们还可以通过设置各个文件夹的权限,来让apache用户只能执行我们想让它能干的事情,给每一个目录建立一个单独能读写的用户.这也是当前很多虚拟主机提供商的流行配置方法哦,不过这种方法用于防止这里就显的有点大材小用了。 * G* ?) w8 X1 t0 m
|