如何自学安全测试才能更快地掌握安全测试技能

一般来说,版本功能测试完成,对应的用例也实现了自动化,性能、兼容、稳定性测试也完成了以后,我们就需要考虑到系统的安全问题,特别是涉及到交易、支付、用户账户信息的模块,安全漏洞会带来极高的风险。

常见的安全威胁:

1.安全需求:

※认证:对认证的用户的请求返回

※访问控制:对未认证的用户的权限控制和数据保护

※完整性:用户必须准确的收到服务器发送的信息

※机密性:信息必须准确的传递给预期的用户

※可靠性:失败的频率是多少?网络从失败中恢复需要多长时间?采取什么措施来应对灾难性的失败?(个人理解这个地方应该更偏向于容错容灾测试的范畴)

※不可抵赖:用户应该能证明接收到的数据来自特定的服务器

2.常见的安全测试内容

权限控制

SQL注入

URL安全测试

XSS(跨站脚本攻击)

CSRF(跨站请求伪造)

URL跳转漏洞

其他安全方面的考量

接下来,我们以一个C#实现的下常见的MVC架构网站为例,来分析具体的各个安全测试角度。

二.权限控制

权限控制相对来说比较简单,功能测试的过程中也接触过不少,主要就是考虑以下方面:

1.用户权限:我们假设存在两个用户A,B;其中A的权限级别很高,B的权限级别则很低:

只有A能进行的操作,B能不能进行操作;

只有A能看到的页面,B能不能看到;

2.页面权限:

必须登录才能看到的页面,不登录直接访问能否看到?

必须A-B-C的页面,能否直接A-C?

通常来说单纯的权限控制页面测试不复杂,但是因为权限控制和后续的URL跳转、Session等方面结合的比较紧密,所以单独提出来。

三.SQL注入

1.SQL注入原理

以Sql Sever为例,C#提供了两种操作数据库的方法,以实现Sql Sever的查询功能为例(Mysql只需要将Sql对象替换为MySql对象即可):

  1. 直接使用传入的Sql进行数据库操作
  2.  使用SqlParameter对象,对参数进行格式化,分离控制语句与执行语句

四.URL安全测试:

1.MVC下的URL构成:

1).使用Get方式的URL构造方式

2).使用Post方式的URL构造方式

五.XSS

跨站脚本攻击(Cross Site Scripting),为了和层叠样式表css区分,简写为XSS。

1.原理

攻击者在网页中嵌入客户端脚本(例如JavaScript), 当用户浏览此网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的。

2.类型:   

反射型XSS:需要欺骗用户进行操作才能触发XSS代码,主要威胁个体用户

持久性XSS:代码储存在服务器中,用户访问时即可直接触发XSS代码,威胁大量用户

3.解决思路:对数据进行html编码处理,保证用户输入的数据不会改变程序代码

 将重要的cookie标记为http  only,这样的话Javascript 中的document.cookie语句就不能获取到cookie了.

只允许用户输入我们期望的数据。 例如: 年龄的textbox中,只允许用户输入数字。 而数字之外的字符都过滤掉。

过滤或移除特殊的Html标签, 例如: <script>, <iframe> ,  < for <, > for >, " for

过滤JavaScript 事件的标签。

六.CSRF

跨站请求伪造(Cross-Site Request Forgery),也被称为“One Click Attack”或者Session Riding,简写为CSRF或XSRF。。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值