1)登陆测试 |
2)数据加密 |
3)url和api身份验证(直接将一些地址输入到新开的浏览器,可以绕过登陆页面) |
4)跨站脚本:web应用程序从用户处获取的输入(字符串,包含脚本的字符串)没有进行验证就在web页面上显示。不仅要在客户端进行用户输入的检查,还需要在服务器端,因为利用一些工具可以修改提交到服务器的字符串 |
5)sql注入:代码审查,查看所有涉及SQL语句提交的地方,是否正确处理了用户输入的字符串 输入单引号,检查是否转义 输入],检查是否对括号进行处理 ';drop tablename; *' or '1' ='1 |
6)缓冲区溢出:对每一个用户可能输入的地方尝试不同长度的数据输入,以验证程序在各种情况下正确处理了用户的输入数据,而不会导致异常或溢出问题 |
7)网页漏洞 |
8)程序抛出异常给出了比较详细的内部错误信息 |
9)认证和会话数据不应该作为GET的一部分来发送 |
10)cookie安全性(工具:cookie editor) ① 屏蔽cookie ② 有选择性地拒绝cookie,检查web系统的工作情况 ③ 篡改cookie,看是否导致功能不正确或者业务逻辑混乱 ④ cookie加密测试 ⑤ cookie安全内容检查(cookie过期时间是否合理,secure属性设置) |
11)拒绝服务威胁 错误处理模块是否包含finally块,以便在出错时释放资源 对用户输入,检查输入数据大小,类型和返回数据量的合理性 检查文件上传是否对大小进行限制 |
输入安全类控制:
1. 安全输入类:SQL注入字符串、跨站脚本字符串(用Base-64或URL方式将某些攻击字符串编码)
2. SQL注入字符串
原因:没有正确过滤转义字符;数据库服务器中的漏洞
预防:使用参数化的过滤性语句;使用专业的漏洞扫描工具
3. 网页攻击手法(见web security安全分类blog)
4. 跨站式脚本资源:http://ha.ckers.org/xss.html
《Hacking Exposed:Web Applications》
《How to Break Web Security》