一、安全测试介绍

概念:安全测试就是发现软件安全漏洞的过程,旨在保护软件系统的数据与功能
安全测试以破坏系统的安全策略为目标进行攻击,从而检查系统的漏洞或薄弱环节
对软件系统的要求 能够向合法用户提供服务,同时能够阻止非授权用户使用和破坏

二、 安全测试与传统测试的区别

1、目标不同
  传统测试:以发现Bug为目标
  安全测试:以发现安全隐患(漏洞)为目标
2、假设条件不同
  传统测试:假设导致问题的数据是用户不小心造成的
  安全测试:假设导致问题的数据是攻击者故意构造的
3、思考域不同
  传统测试:以系统所具有的功能为思考域
  安全测试:不但包括系统的功能,还有系统的机制、外部环境、应用与数据自身安全等等
4、问题发现模式不同
  传统测试:以违反功能定义为判断依据
  安全测试:以违反权限与能力的约束为判断依据

三、安全测试常用方法

1、静态代码检查:通过代码走读的方式,对源代码的安全性进行测试

2、动态渗透测试:主要是借助工具或手工来模拟黑客的输入,对应用程序进行安全性测试

3、扫描程序中的数据:主要是对内存进行测试,尽量发现诸如缓冲区溢出之类的漏洞

四、安全测试的维度

1、客户端脚本安全测试

2、网络安全测试

3、用户认证安全性测试

4、应用程序安全性测试

5、数据库安全性测试

4.1、客户端脚本安全测试

跨站脚本攻击(XSS)

是指攻击者往Web页面里插入恶意Script代码,当用户浏览该网页时,嵌入的代码会被执行,从而达到恶意攻击用户的目的
原理:

 

 XSS攻击类型:

(1)存储型:

   又称为持久型跨站脚本
   跨站代码长期存储在服务器中(数据库)
     用户每次访问都会被执行
     比如在个人信息、发表文章、发表评论等地方
(2)反射型:
    又称为非持久型跨站脚本
    只是简单地把用户输入的数据“反射”给浏览器
    攻击者事先制作好攻击链接, 需要欺骗用户自己去点击链接才能触发XSS代码
• 跨站点请求伪造(CSRF)
XSS攻击步骤:
1. 页面查找XSS漏洞
2. 注入恶意程序
3. 客户端访问注入恶意程序的页面
4. 获取客户端敏感信息或攻击
XSS防御:
(1)HttpOnly:给关键的Cookie都加上HttpOnly属性。浏览器将禁止页面的JavaScript访问带有HttpOnly属性的Cookie
(2)输入检查:检查用户输入的数据中是否包含了一些特殊字符,如<、>、'、"。如果发现存在特殊字符,则将这些字符过滤或者编码
(3)输出检查:在变量输出到HTML页面时,可以使用编码或者转义的方式来防御XSS攻击

跨站点请求伪造(CSRF)

概念:是指跨站请求伪造
防御:
1、验证码:验证码被认为是对抗CSRF攻击最简洁有效的防御方法。但是出于用户体验考虑,不能给所有的操作都加上验证码
2、验证HTTP Referer:HTTP Referer可被用于检查请求是否来自合法的“源”
3、添加token并验证:在请求地址中添加token并验证

XSS和CSRF的区别:

XSS:
  不需要登录网站
  是向网站A注入JS代码,然后执行JS代码,篡改网站A的内容
CSRF: 
  需要用户先登录网站A
  是利用网站A本身的漏洞,去请求网站A的接口,涉及到两个站点
 
posted on 2022-12-11 21:01  zj8970  阅读(66)  评论(0编辑  收藏  举报