
|
PHP网页的安全性问题
. d: @) F$ j! p* G! u& S针对PHP的网站主要存在下面几种攻击方式:
. S5 a- h' o$ O' e1 e: W1.命令注入(Command Injection)8 A4 R, z& I/ l" H
2.eval注入(Eval Injection)% l4 S; x- `: z( x
3.客户端脚本攻击(Script Insertion)! M9 l8 Q! I/ c# N" W! x1 T1 }
4.跨网站脚本攻击(Cross Site Scripting, XSS)
$ k. I% G& P, b1 ]! e& J6 j5.SQL注入攻击(SQL injection)
# r# }: {8 C6 R1 _+ a; f) m+ u6.跨网站请求伪造攻击(Cross Site Request Forgeries, CSRF)) w- S) n9 B2 M4 R( T
7.Session 会话劫持(Session Hijacking)( U" |# n+ Q( q/ X
8.Session 固定攻击(Session Fixation)
) i" u3 h: G4 X9.HTTP响应拆分攻击(HTTP Response Splitting)+ ]/ b! b+ m6 W0 @) H
10.文件上传漏洞(File Upload Attack)
% i' c9 ?8 X1 ?7 R9 I" o7 |11.目录穿越漏洞(Directory Traversal)
, ]& w) I7 s' m12.远程文件包含攻击(Remote Inclusion)6 F- s' Y2 G( w- d* y' K! S) J
13.动态函数注入攻击(Dynamic Variable Evaluation)8 @7 n1 c9 [ v! s; m8 i
14.URL攻击(URL attack)- T- q1 b0 S9 e& |" q
15.表单提交欺骗攻击(Spoofed Form Submissions)
- u+ F$ k* a2 d q. Z+ @+ i16.HTTP请求欺骗攻击(Spoofed HTTP Requests)
6 z$ v2 v, Y8 j+ |
/ d$ g3 ]& b5 P8 N% ?几个重要的php.ini选项
# l6 c3 t% v4 t- F5 l5 M/ ^Register Globals" K" Z- A2 B0 x
php>=4.2.0,php.ini 的register_globals选项的默认值预设为Off,当register_globals的设定为On时,程序可以接收来自服务器的各种环境变量,包括表单提交的变量,而且由于PHP不必事先初始化变量的值,从而导致很大的安全隐患./ q# M5 b' U7 H4 A) K+ {
例1:0 q* j6 D, c$ q9 O
//check_admin()用于检查当前用户权限,如果是admin设置$is_admin变量为true,然后下面判断此变量是否为true,然后执行管理的一些操作) W; w6 r# @( V- s& U) t
//ex1.php; j9 d; ]9 _5 \: |$ b
1 i; K2 M2 J* Z$ B w. g* n
|
|