1、安全测试分为几个层次???
1.1 针对操作系统层面
1.1.1 不应该开放的端口开放
1.1.2 远程连接 443
1.1.3 系统管理员密码过于简单
1.1.4 补丁没有及时更新/修复,利用补丁进行攻击
1.2 针对网络通信层面
1.2.1 网络传输协议,应用层、传输层、网络层、链路层、实体层
1.2.2 任何的输入输出都会存在问题
1.3 应用本身
2、Web安全测试
2.1 权限和认证
2.1.1 权限:用户 角色 组 权限
2.1.2 认证:在交互过程中怎么去确保权限得到落实的一个过程
2.2 session和cookie
2.2.1 不要在cookie中携带敏感数据
- 用户名和密码不要在cookie中保存,cookie会将数据发往客户端
- 系统本地缓存文件/临时文件夹中可以获取到cookie数据,所以尽量不要将敏感数据放到cookie中
2.2.2 敏感数据一定要加密
- cookie在传输数据一定要加密,前端加密本质都是无效的
2.2.3 session的过期和存续机制是否合理
2.3 SQL注入
2.4 xss跨站脚本攻击
2.4.1 持久型XSS攻击
- 一般钓鱼网站
- 站点存在安全漏洞被攻击者利用
2.4.2 非持久型XSS攻击
- 修改URL或者其它临时性的措施让用户访问,一次有效
2.5 文件上传
- 上传文件的类型要做检测
- 不能仅仅检测后缀名,要对内容检测(Windows文件执行和后缀名有关系,Linux只对其中的内容有关系)
- 上传文件的大小(文件过大造成带宽、内存进行损耗;内存崩溃、服务器文件系统不能承载,服务器系统错误导致服务器宕机)
- 上传文件的数量
- 上传文件后要重命名
2.6 文件下载
- 下载文件要做权限控制(非必要)
- 下载文件不能通过静态资源方式访问(用户可能会通过遍历静态资源)