安全性测试:指有关验证应用程序的安全等级和识别潜在安全性缺陷的过程。
安全性测试的目的:查找软件自身程序设计中存在的安全隐患,并检查应用程序对非法入侵的防范能力。
例子:对于一个公司内部使用(只有通过内网才能访问,互联网上无法访问)的B/S结构软件,这样的软件不用过于注重安全性问题。
一些常见的软件安全问题有:
- 缓冲区溢出
- 格式化字符串攻击
- 整数溢出
- SQL注入
- 命令注入
- 跨站脚本攻击
- 函数错误返回值、异常未被处理
- 网络数据截获
- MagicURL隐藏的表单字段攻击
- SSL、TLS协议攻击
- 脆弱的登录口令
- 存储中的访问控制攻击
- 系统和应用程序的信息泄露
- 非法文件访问
- 域名服务解析攻击
- 竞争条件攻击
- 未认证的密钥交换
- 密码学随机数破解
安全测试常用的静态检测工具有:
- Fortify
- Rough Auditing Tool for Security
- BEAM
- SLAM
- Flaw Finder
- Prexis
- Coverity
安全性测试的主要方法有:
静态的代码安全测试:通过对源代码进行安全扫描
动态的渗透测试:模拟黑客输入,对应用系统进行攻击性测试
程序数据扫描:通常是进行内存测试
正向测试过程(以测试空间为依据寻找缺陷和漏洞)和反向测试过程(以已知的缺陷空间为依据去寻找软件中是否会发生同样的缺陷和漏洞)
1、什么是跨站脚本(XSS)攻击?
解答: