
|
PHP网页的安全性问题
: P! g& \+ `! H8 O y: [针对PHP的网站主要存在下面几种攻击方式:
5 p5 L( O3 Z4 N! s1.命令注入(Command Injection)- f; M& m+ Q6 \
2.eval注入(Eval Injection)
, w3 \& x. O K4 O3.客户端脚本攻击(Script Insertion)( r) [" J8 H% Y$ } `
4.跨网站脚本攻击(Cross Site Scripting, XSS)
# K- l3 ~& q/ i# u7 u& C8 E5.SQL注入攻击(SQL injection)
" Z- P3 h1 L6 {- h; h6.跨网站请求伪造攻击(Cross Site Request Forgeries, CSRF)
' E+ H6 V8 i- q6 N7 O1 w7.Session 会话劫持(Session Hijacking)
1 f3 W' M- |7 o8 |0 X. e- F8.Session 固定攻击(Session Fixation)5 p, F& M( ]; I' w$ h* X- d/ C
9.HTTP响应拆分攻击(HTTP Response Splitting)
- K7 Z3 N% y! {/ o+ O! V N10.文件上传漏洞(File Upload Attack)
0 |- s! v! ^- ^, T7 @! ?11.目录穿越漏洞(Directory Traversal)' Y( a* D+ @8 ?- I5 ~
12.远程文件包含攻击(Remote Inclusion)
# f" |7 h1 b X% C) w1 t6 t; V13.动态函数注入攻击(Dynamic Variable Evaluation)/ M V$ h- A* s
14.URL攻击(URL attack)
" m, I0 J6 o' b- P: `15.表单提交欺骗攻击(Spoofed Form Submissions)7 l( T3 A; \) U; [/ W) ~; h# Z: a
16.HTTP请求欺骗攻击(Spoofed HTTP Requests)
, I x! x+ Q& }8 y8 b4 i4 P4 u 3 d. g* O1 t' G# p& N# a( V0 [
几个重要的php.ini选项4 D: n& I3 a7 N- p H% n
Register Globals c; ?; } T" j6 h
php>=4.2.0,php.ini 的register_globals选项的默认值预设为Off,当register_globals的设定为On时,程序可以接收来自服务器的各种环境变量,包括表单提交的变量,而且由于PHP不必事先初始化变量的值,从而导致很大的安全隐患.
! N6 [3 Q# J, E5 E例1:7 t) }" d) P: J9 A; d! @
//check_admin()用于检查当前用户权限,如果是admin设置$is_admin变量为true,然后下面判断此变量是否为true,然后执行管理的一些操作8 b, n, N3 i/ U% `
//ex1.php+ w+ Y: `: d: H6 {3 [
3 \. \5 Y$ W A6 [& R l( i |
|