首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 笔记本电脑 | 北大青鸟 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室软件测试频道
首页 资讯动态 测试技术 测试工具 行业软件测试 测试管理 测试下载 经验分享 软件质量 其他技术 RSS订阅 博客 论坛
您现在的位置: 中国IT实验室 >> 软件测试 >> 测试技术 >> 安全测试 >> 正文

安全测试之避开客户端校验

    学习安全测试小一周了,今天来谈谈学习到的一些内容,怎样避开客户端进行测试,查找应用的安全问题,以及如何预防。
    大部分的web应用程序会依靠客户端执行各种措施来控制它提交给服务器的数据,以提高程序的可用性,避免客户端与服务器来回通信。比如使用javascript来校验长度是否超长,格式是否正确,使用隐藏html表单字段进行数据传送,使用url参数传送数据等等。
    但是,这样做存在一个基本的安全缺陷:用户能够完全控制客户端及提交的数据,即避开任何在客户端执行但服务器并不采用的控件,直接提交数据给服务器处理。
    目前已经有大量的拦截代理服务器的工具。比如firefox的插件temper data,它位于web浏览器与目标应用程序之间,可以拦截应用程序发布和收到的每一个http或https请求和相应。我们通过它可以拦截任何客户端传递的消息,并且对其进行检查或修改,将修改过的内容传递给服务器进行处理。
    拿一个简单的实例来说:对于一个输入框,长度限制为10,客户端通过了javascript进行校验,有一个maxlength=’10’,通常我们进行功能测试,会尝试输入10 字符和11个字符,超长之后会提示用户无法继续输入,我们认为该功能是正常的。然而,我们可以进一步进行测试:通过代理服务器来拦截这个请求,将内容改为长度为20的内容后继续提交,接着查看后端服务器应用是否提示错误信息,如果没有错误信息提示(有时数据库字段长度的设置稍微长一些),那说明这里是存在安全问题的。
    对于以上安全问题的预防措施,对于重要敏感的信息,比如折扣、价格等,要放到服务器端传参与校验等,如果服务器端收到已被客户端阻止的数据,应用程序应将异常记录到日志中,在需要的时候向管理员发出警报来监控攻击企图。在某些重要敏感的功能中,应用程序还可以主动采取防御措施,终止用户会话或暂时冻结其账户。
    综上所述,由于客户端组件和用户输入不在服务器的控制范围内,web应用程序会面临安全威胁。客户及其提交的数据本质上讲都是不值得信任的。确认客户生成数据的唯一安全方法是在应用程序的服务器端实施保护措施。
【责编:peter】

相关产品和培训
文章评论
 专题推荐

 ·看思科认证发展未来
 ·GNU详细解析
 ·Android平台开发指南
 ·职业规划从高考专业选择开始
 ·从菜鸟到专家 cisco认证系列问答
 ·Java EE 6规范中文版
 ·Oracle 10g OCP考证秘笈
 ·Windows 注册表全面认识
 ·循序渐进认识WEB服务器
 ·中国Linux内核开发者大会
 最近更新
 博客论点
 频道精选
 软件测试频道导航