收藏本站 收藏本站
积木网首页 - 软件测试 - 常用手册 - 站长工具 - 技术社区
软件测试 > 安全测试 > 正文

首页 | 领域细分: 游戏测试 安全测试 手机测试 Web测试 | 技术研究: 单元测试 入门教程 用例设计 性能测试 功能测试 | 测试职场: 面试精选 职场发展 面试试题

测试管理: 配置及流程 - 需求管理 - 质量验收 - 缺陷管理 - 其它管理相关 | 开发语言: PHP技巧 - PHP基础 - PHP实例 - PHP错误代码

测试工具: LoadRunner JiRa QuickTestPro RoBot WinRunner TestDirector 其它测试工具 | 数据库: Mysql数据库 Oracle数据库 CSS/DIV基础 HTML基础

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

来源:互联网 日期:2014-09-07 09:52

  大部分的web应用程序会依靠客户端执行各种措施来控制它提交给服务器的数据,以提高程序的可用性,避免客户端与服务器来回通信。比如使用javascript来校验长度是否超长,格式是否正确,使用隐藏html表单字段进行数据传送,使用url参数传送数据等等。

  但是,这样做存在一个基本的安全缺陷:用户能够完全控制客户端及提交的数据,即避开任何在客户端执行但服务器并不采用的控件,直接提交数据给服务器处理。

  目前已经有大量的拦截代理服务器的工具。比如firefox的插件temper data,它位于web浏览器与目标应用程序之间,可以拦截应用程序发布和收到的每一个http或https请求和相应。我们通过它可以拦截任何客户端传递的消息,并且对其进行检查或修改,将修改过的内容传递给服务器进行处理。

  拿一个简单的实例来说:对于一个输入框,长度限制为10,客户端通过了javascript进行校验,有一个maxlength=’10’,通常我们进行功能测试,会尝试输入10 字符和11个字符,超长之后会提示用户无法继续输入,我们认为该功能是正常的。然而,我们可以进一步进行测试:通过代理服务器来拦截这个请求,将内容改为长度为20的内容后继续提交,接着查看后端服务器应用是否提示错误信息,如果没有错误信息提示(有时数据库字段长度的设置稍微长一些),那说明这里是存在安全问题的。

  对于以上安全问题的预防措施,对于重要敏感的信息,比如折扣、价格等,要放到服务器端传参与校验等,如果服务器端收到已被客户端阻止的数据,应用程序应将异常记录到日志中,在需要的时候向管理员发出警报来监控攻击企图。在某些重要敏感的功能中,应用程序还可以主动采取防御措施,终止用户会话或暂时冻结其账户。

  综上所述,由于客户端组件和用户输入不在服务器的控制范围内,web应用程序会面临安全威胁。客户及其提交的数据本质上讲都是不值得信任的。确认客户生成数据的唯一安全方法是在应用程序的服务器端实施保护措施。

本周排行

别人正在浏览

强悍的草根IT技术社区,这里应该有您想要的!
Copyright © 2010 Gimoo.Net. All Rights Rreserved  京ICP备05050695号