安全性测试(一)--网页安全检查
本文摘抄自一个做过网站系统安全性测试人写的文章! 感觉写的不错,记录下来:
网站安全性测试
一. 测试范围概述
网站的安全性检查一般包括:
- 网页安全检查
- 数据库安全检查
- 系统安全检查
- 接口安全检查
二. 检查范围详解
(一) 网页安全检查
1. 输入的数据没有进行有效的控制和验证
- 数据类型
- 允许的字符集
- 最大和最小长度
- 是否允许空输入
- 参数是否是必须的
- 重复是否允许
- 数值范围
- 特定的值(枚举类)
- 特定的模式(正则表达式)
2. 用户名和密码
- 检测接口程序连接登陆时,是否需要输入相应的用户
- 是否设置密码最小长度
- 用户名和密码是否可以有空格或回车
- 是否允许密码和用户名一致
- 防恶意注册: 可否用自动填表工具自动注册用户?
- 忘记密码处理?
- 有无缺省的超级用户?(admin,root)
- 有无超级密码
- 有无有效校验
- 密码错误次数有无限制
- 大小写敏感
- 口令不允许以明码显示在输出设备上
- 强制修改的时间间隔设置(初始默认密码)
- 口令的唯一性限制
- 口令过期失效后,是否可以不登陆而直接浏览摸个页面
- 哪些页面或者文件需要登录后才能访问/下载
- cookie 中或 隐藏变量中是否含有用户名\密码\userid 等关键信息
3. 直接输入需要权限的网页地址可以访问
- 没有登陆或注销登陆后,直接输入受限的页面
- 注销后,浏览器上后退
- 正常登陆后,直接输入自己没有权限查看的页面的网址
- 通过http抓包的获取http 请求信息包经改装后重现发送
- 从权限低的页面可以退回到高的页面(如发送消息后,浏览器后退到信息填写页面)
4. 上传文件没有限制
- 上传文件的大小没有限制
- 上传木马病毒等
- 上传文件没有格式的限制
5. 不安全的存储
- 在页面输入密码,页面应显示:******
- 数据库中存在的密码应经过加密
- 地址栏中不可以看到刚填写的密码
- 右键查看源文件不能看见刚才输入的密码
- 账户列表: 系统部允许用户浏览到网址所有的账号,如果必须要一个用户列表,推荐使用某种形式的假名(屏幕名)来指定实际的账号.----本人不理解目前,记录下
6. 操作时间的失效性
- 系统是否支持操作失效时间的配置,同时达到所配置的时间内没有对页面进行任何操作室,检测系统是否会将用户自动失效,需要重现登陆
- 支持操作失效时间的配置
- 支持当用户在所配置的时间内没有对页面进行任何操作则该应用自动失效
7. 日志完整性
- 检测系统运行时是否记录完整的日志
- 检测系统对关键数据进行增加,修改和删除时系统是否记录相应的修改时间,操作人员和修改前的数据记录
不断的总结,才能不断的提高;不断的思考,才能不断的进步!