安全性测试都有什么?简单的就包括跳过权限验证啊,修改提交信息啊,复杂的呢,就有sql盲注、跨站点脚本等等。这些咱们暂时不一一细表,只说说我们为什么要进行安全性测试。、
其实网上关于安全性测试的资料并不是非常多,即使有人关注已只是很浅显的谈到部门安全性因素。当然,据我了解部分大公司都有自己的安全性测试团队,这部分
工作并不由测试人员进行。
胡扯了两句,今天我们来聊聊为什么进行安全性测试,或者说,安全性到底会引起哪些问题、后果。
第一,提到安全。我们一个产品一个网站最需要加强安全防范的就是
数据库。那么如果缺少了安全性测试,在高手的sql盲注下,你的数据库就会逐步展现在黑客的面前,无论是数据库类型、表结构、字段名或是详细的用户信息,都有无数种手段可以让人“一览无余”。
第二,就是权限。网站一般都规定了什么样的用户可以做什么事。比如版主可以修改所有人的帖子,而你普通用户只能编辑自己的帖子,同样游客只能看大家的帖子。这就是简单的权限。如果少了安全性保证,那么就容易有人跳出权限做他不该做的事情。
简单举个小例子,一个登录模块,让你输入用户名密码。我们会老老实实的输入我们的用户名密码,比如“风落几番”-“password”。如果我们刻意的去绕过登录认证呢?
猜想一下这个sql,单说用户名,开发人员很可能会这样去数据库里对比:
Select count(id) from sys_user where username=‘XXX’
当然可能更复杂,咱们就用这个说。如果我们在输入框里输入一段特殊的字符会如何?
’or‘1=1
这是段神奇的字符,因为这样这个sql就变成:
Select count(id) from sys_user where username=‘’or‘1=1’
好吧,我们就跳过了用户名的验证。。。
说的好基础和无聊的感觉,其实这就是安全性的一部分。
接着说第三,就是修改提交数据信息。曾经我们公司做过一个关于在线支付的商城,在安全性测试过程中,我发现通过抓包抓到的提交价格,经过修改再发包可以通过。简单来说就是本来100块钱买的东西,我抓包修改为1块就能成功购买。这就成为了一个巨大的隐患。
再说第四,类似跨站脚本的安全隐患。这方面网上资料很多,具体过程呢就像这样:
1.HTML注入。所有HTML注入范例只是注入一个JavaScript弹出式的警告框:alert(1)。
2.做坏事。如果您觉得警告框还不够刺激,当受害者点击了一个被注入了HTML代码的页面链接时攻击者能作的各种的恶意事情。
3.诱捕受害者,可能会redirect到另一个钓鱼网站之类的,使其蒙受损失。