一个完整的WEB安全性测试可以从部署与基础结构、输入验证、身份验证、授权、配置管理、敏感数据、会话管理、加密。参数操作、异常管理、审核和日志记录等几个方面入手。51Testing软件测试网p*RD1AwDbX
XW:fuNK01.安全体系测试51Testing软件测试网W1ng*xM#}'~8l
Cn
wh9n9l
Ab9]2Hp01) 部署与基础结构51Testing软件测试网nAI
gR-lG$qT
51Testing软件测试网e3HP$T2ZE'nu 网络是否提供了安全的通信51Testing软件测试网0CH i9vg~-S'B^
(c0eU7H v uK RF W0u 部署拓扑结构是否包括内部的防火墙51Testing软件测试网pJ5@xc5\
51Testing软件测试网(O{K?h$?4K/b6T;]u 部署拓扑结构中是否包括远程应用程序服务器
4gmiX&_;vU*Aq/`0JLt-a!rSFO"d-c0u 基础结构安全性需求的限制是什么51Testing软件测试网MO%u$NWN*]+X
x/G*_5H#f0u 目标环境支持怎样的信任级别
hg2S6m/w s&rv
~0? [xJ,M02) 输入验证
#W8n1{~_&O0d)W#m _5N0u 如何验证输入51Testing软件测试网Dby)F
S?
51Testing软件测试网
U\hUV(\u 是否清楚入口点
`(O6X2Zd!s T-_0S-E-xK+cbc#^0u 是否清楚信任边界
j2XmuS
z BL051Testing软件测试网0M3w.g lI
_pu 是否验证Web页输入51Testing软件测试网8^6fnG!Rva
R-iG[&rg[,g6_;\B U0u 是否对传递到组件或Web服务的参数进行验证51Testing软件测试网 V"L&Bl8Z|
z0p!?5P$m*g0u 是否验证从数据库中检索的数据51Testing软件测试网+W7a;a}u7kXDQ
K8D)T#m NDF%T'x0u 是否将方法集中起来51Testing软件测试网 x.vdD}^AK4[I
:z5ecLTK$E9\#~a0u 是否依赖客户端的验证
oN+v]?,A1A%Cd ]7m0.|gd*^ ^0u 应用程序是否易受SQL注入攻击
b@f$GR+uXN0$j|S`G6Qy}0u 应用程序是否易受XSS攻击
v4x$fnh.l/r0g\stI] dpe0u 如何处理输入
W+@.dv!S!R#O0E)~-h.K7g"AjA03)身份验证51Testing软件测试网@,p*SLqD'Y#sO
51Testing软件测试网%e V)bW_u 是否区分公共访问和受限访问51Testing软件测试网0_\_$~(m9R
v3{L/Nb jDI,B_0u 是否明确服务帐户要求
)cG$d(n ON^/R07~6j;KH+}.t[$D$a z0u 如何验证调用者身份
.J"V@Si6ti9L0"vA _HaH0u 如何验证数据库的身份51Testing软件测试网.dM;`)\_X
51Testing软件测试网-U v'm;uXG9B9Tgg#Iu 是否强制试用帐户管理措施51Testing软件测试网v&|*W#as_/{
$Y?J2e{04)授权51Testing软件测试网1uZIvo[8P;A
,anH,Y}+fJNp0u 如何向最终用户授权51Testing软件测试网 Y;ZH^J-S
51Testing软件测试网/Ln4{.zb~'ku 如何在数据库中授权应用程序51Testing软件测试网N!m&h@Rl u+s
8^6r.O/qYB1MJ$M9Z$`0u 如何将访问限定于系统级资源
p`;n)Tiz]0#]Q!PsA^P`05)配置管理51Testing软件测试网A1z3[Y
M/M&]
[f-dWS0u 是否支持远程管理
'CcS)f*FA051Testing软件测试网3O5TMWS:Rq"q6su 是否保证配置存储的安全
u*l$PgZ(z
b!h051Testing软件测试网8j!Cug@6]u 是否隔离管理员特权51Testing软件测试网)lj'q^6c_
'\ g;x7n,P'Kx/O06)敏感数据51Testing软件测试网 o1cz$Q\Re
51Testing软件测试网Qd2K6QCp&wM$m4Ku 是否存储机密信息
q'~
` ]&}R0
B,En#}c
y%X0u 如何存储敏感数据51Testing软件测试网/oKo!I bG`
51Testing软件测试网IY T?AJ,k7W `u 是否在网络中传递敏感数据
3h;{z%jK1Sq0?#c"e`4?A@ Q!F0u 是否记录敏感数据
UJ:L|(iU0.P4^:x;x4WMQ07)会话管理51Testing软件测试网w] Jv3v.@Z.^
51Testing软件测试网 ^J+M:h;kc$Bu 如何交换会话标识符51Testing软件测试网7ZSX2E3@'M]
_6GO gY0sQ0u 是否限制会话生存期51Testing软件测试网4X.cz6W g^^.q"E
TS9ob}8e^WD0u 如何确保会话存储状态的安全
y
{3v(t.d06WQ];n D08)加密
2{ t
RYR*o0.g9hA"Z.Ay0u 为何使用特定的算法51Testing软件测试网)w%W#] H"|+S6A:Wr
pX,?+N d?g;q Y ML0u 如何确保加密密钥的安全性51Testing软件测试网#kZ2]C'F4ZM0`,EB,T:S
51Testing软件测试网TV}{1Vq]8sY9)参数操作
[+SC:Zm2ZS1}9J|n's*\*y0$AE@z?x0}K0u 是否验证所有的输入参数
9e!l^ yF;x051Testing软件测试网:Hy:u1j3?[Q|L3ou 是否在参数过程中传递敏感数据
,{4JC*V ~%kA-H051Testing软件测试网8o$JUZ B9lW2W1Su 是否为了安全问题而使用HTTP头数据
1jq6V$[3U nJ J%l0X;`1Q6t!X?/Q~H010)异常管理51Testing软件测试网)x}
k f|F3g9Y3g/k
51Testing软件测试网GJB)G9SI~!q@_u 是否使用结构化的异常处理51Testing软件测试网y;~dv;p,V:ZL
51Testing软件测试网9MPN3d*Q4hNUu 是否向客户端公开了太多的信息
3`5r9M1u8`0p0d|6J9k/SY[!i011)审核和日志记录51Testing软件测试网1Tko,c.}+b(K j\@
:fkNur
wk9s.gE0u 是否明确了要审核的活动
M1}-FI#\7OH UH:`03I-af[3OO3j+r;S0u 是否考虑如何流动原始调用这身份
-k#g.M j u
h051Testing软件测试网,nW$m8^*HS.X2.应用及传输安全
bzz
N:{0`2[P ]7P1~6@F0WEB应用系统的安全性从使用角度可以分为应用级的安全与传输级的安全,安全性测试也可以从这两方面入手。
/k]s"w%F#ZH
Z0yKA;c!W0应用级的安全测试的主要目的是查找Web系统自身程序设计中存在的安全隐患,主要测试区域如下。51Testing软件测试网
eI&Q B G)h*M)~nM-L
h&|6kLt*F01. 注册与登陆:现在的Web应用系统基本采用先注册,后登录的方式。
Wetf&L'V5K!sgu0:g2a [lmw{g0u 必须测试有效和无效的用户名和密码51Testing软件测试网%N~oo9_1`U
,J_n*Kw~ya0u 要注意是否存在大小写敏感51Testing软件测试网:VXH|o*D9V
;H-W4?*VD i y0u 可以尝试多少次的限制
v-Pp-w3_/JhUE&h2S051Testing软件测试网%Hu#X.Lru 是否可以不登录而直接浏览某个页面等。
~-oLzh B0p
T,mc_l%Z3U)aB02. 在线超时:Web应用系统是否有超时的限制,也就是说,用户登陆一定时间内(例如15分钟)没有点击任何页面,是否需要重新登陆才能正常使用。
'g
F#V
Mn|4c051Testing软件测试网]m0q6g/NR/[B3. 操作留痕:为了保证Web应用系统的安全性,日志文件是至关重要的。需要测试相关信息是否写进入了日志文件,是否可追踪。51Testing软件测试网)t wQ%t/X(t
51Testing软件测试网,K0B|fb%X/{B4. 备份与恢复:为了防范系统的意外崩溃造成的数据丢失,备份与恢复手段是一个Web系统的必备功能。备份与恢复根据Web系统对安全性的要求可以采用多种手段,如数据库增量备份、数据库完全备份、系统完全备份等。出于更高的安全性要求,某些实时系统经常会采用双机热备或多级热备。除了对于这些备份与恢复方式进行验证测试以外,还要评估这种备份与恢复方式是否满足Web系统的安全性需求。传输级的安全测试是考虑到Web系统的传输的特殊性,重点测试数据经客户端传送到服务器端可能存在的安全漏洞,以及服务器防范非法访问的能力。一般测试项目包括以下几个方面。
"c@UPk}%}^0c5wXK0~05. HTTPS和SSL测试:默认的情况下,安全HTTP(Soure HTTP)通过安全套接字SSL(Source Socket Layer)协议在端口443上使用普通的HTTP。HTTPS使用的公共密钥的加密长度决定的HTTPS的安全级别,但从某种意义上来说,安全性的保证是以损失性能为代价的。除了还要测试加密是否正确,检查信息的完整性和确认HTTPS的安全级别外,还要注意在此安全级别下,其性能是否达到要求。
1ZD8b1s2k8@2FP'yo0dt'dEd06. 服务器端的脚本漏洞检查:存在于服务器端的脚本常常构成安全漏洞,这些漏洞又往往被黑客利用。所以,还要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。51Testing软件测试网4@9A~6{ J~6b
51Testing软件测试网/l6EhbF?2V.NR7. 防火墙测试:防火墙是一种主要用于防护非法访问的路由器,在Web系统中是很常用的一种安全系统。防火墙测试是一个很大很专业的课题。这里所涉及的只是对防火墙功能、设置进行测试,以判断本Web系统的安全需求。