您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件测试技术 > web测试 > 正文

WEB安全性测试

发表于:2018-09-27 作者:Alan-elephan 来源:博客园 点击数:
  SQL注入
  所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。[1]  比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击
  XSS攻击
  XSS又称CSS,全称Cross SiteScript,跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性。其原理是攻击者向有 XSS漏洞的网站中输入(传入)恶意的HTML代码,当其它用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的。如,盗取用户 Cookie、破坏页面结构、重定向到其它网站等。
  WEB日志
  如何查看自己的服务器的日记?
  自己有服务器的先打开“Internet 信息服务”,选择你的网站属性,下面有“启用日志记录”,一般有三个选项:W3C扩展日志文件格式、Microsoft IIS 日志文件格式、NCSA公用日志文件格式,默认是:W3C扩展日志文件格式,选择右边的属性,下面有日志文件名:(例 如:W3SCC1\ncyymmdd.log),日志存放目录一般是:C:\WINDOWS\system32\LogFiles,如果你要打开日志文件 夹,那地址就是C:\WINDOWS\system32\LogFiles\W3SCC1。 如果用虚拟主机的可以到服务器商的后台选择日志保存后用 FTP去下载,一般都放在log文件夹内。
  接口测试
  接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
  接口测试大体分为两类:模块接口测试和web接口测试
  模块接口测试是单元测试的基础。它主要测试模块的调用与返回。
  1、检查接口返回的数据是否与预期结果一致。
  2、检查接口的容错性,假如传递数据的类型错误时是否可以处理。例如上面的例子是支持整数,传递的是小数或字符串呢?
  3、接口参数的边界值。例如,传递的参数足够大或为负数时,接口是否可以正常处理。
  4、接口的性能,接口处理数据的时间也是测试的一个方法。牵扯到内部就是算法与代码的优化。
  5、接口的安全性,如果是外部接口的话,这点尤为重要。
  web接口测试又可分为两类:服务器接口测试和外部接口测试。
  服务器接口测试:是测试浏览器与服务器的接口。这个很容易理解,我们知道web开发一般分前端和后端,前端 开发人员用html/css/javascript等技术。后端开发人用php/java/python/ruby等各种语言。用户输入的数据是输入到的 前端页面上,怎样把这些数据传递的后台的呢?通过http协议的get与post请求来实现前后端的数据传递。这也可认为是接口测试,调用的登录接口还是 查询接口,传参的是用户密码还是搜索关键字。
  外部接口测试:这个很典型的例子就是第三方登录,比如你做的新系统免于新用户重新注册的麻烦会提供第三方登录,那用户在登录的时候调用的就是第三方登录的接口,由第三方验证用户名和密码并且返回给当前系统。
  对于web接口测试来说有哪些测试要点:
  1、请求是否正确,默认请求成功是200,如果请求错误也能返回404、500等。
  2、检查返回数据的正确性与格式;json是一种非常创建的格式。
  3、接口的安全性,一般web都不会暴露在网上任意被调用,需要做一些限制,比如鉴权或认证。
  4、接口的性能,web接口同样注重性能,这直接影响用户的使用体验。如果我搜索一个关键字半天结果都没返回,果断弃用。
  JSONXML的区别比较
  1.定义介绍
  (1).XML定义
  扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。
  XML是标准通用标记语言 (SGML) 的子集,非常适合 Web 传输。XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。
  (2).JSON定义
  JSON(JavaScript Object Notation)一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。可在不同平台之间进行数据交换。JSON采用兼容性很高的、完全独立于语言文本格式,同时也具备类似于C语言的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)体系的行为。这些特性使JSON成为理想的数据交换语言。
  JSON基于JavaScript Programming Language , Standard ECMA-262 3rd Edition - December 1999 的一个子集。
  2.XMLJSON优缺点
  (1).XML的优缺点
  <1>.XML的优点
  A.格式统一,符合标准;
  B.容易与其他系统进行远程交互,数据共享比较方便。
  <2>.XML的缺点
  A.XML文件庞大,文件格式复杂,传输占带宽;
  B.服务器端和客户端都需要花费大量代码来解析XML,导致服务器端和客户端代码变得异常复杂且不易维护;
  C.客户端不同浏览器之间解析XML的方式不一致,需要重复编写很多代码;
  D.服务器端和客户端解析XML花费较多的资源和时间。
  (2).JSON的优缺点
  <1>.JSON的优点:
  A.数据格式比较简单,易于读写,格式都是压缩的,占用带宽小;
  B.易于解析,客户端JavaScript可以简单的通过eval()进行JSON数据的读取;
  C.支持多种语言,包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby等服务器端语言,便于服务器端的解析;
  D.在PHP世界,已经有PHP-JSON和JSON-PHP出现了,偏于PHP序列化后的程序直接调用,PHP服务器端的对象、数组等能直接生成JSON格式,便于客户端的访问提取;
  E.因为JSON格式能直接为服务器端代码使用,大大简化了服务器端和客户端的代码开发量,且完成任务不变,并且易于维护。
  <2>.JSON的缺点
  A.没有XML格式这么推广的深入人心和喜用广泛,没有XML那么通用性;
  B.JSON格式目前在Web Service中推广还属于初级阶段。
  3.XMLJSON的优缺点对比
  (1).可读性方面。
  JSON和XML的数据可读性基本相同,JSON和XML的可读性可谓不相上下,一边是建议的语法,一边是规范的标签形式,XML可读性较好些。
  (2).可扩展性方面。
  XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。
  (3).编码难度方面。
  XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使不借助工具也能写出JSON的代码,可是要写好XML就不太容易了。
  (4).解码难度方面。
  XML的解析得考虑子节点父节点,让人头昏眼花,而JSON的解析难度几乎为0。这一点XML输的真是没话说。
  (5).流行度方面。
  XML已经被业界广泛的使用,而JSON才刚刚开始,但是在Ajax这个特定的领域,未来的发展一定是XML让位于JSON。到时Ajax应该变成Ajaj(Asynchronous Javascript and JSON)了。
  (6).解析手段方面。
  JSON和XML同样拥有丰富的解析手段。
  (7).数据体积方面。
  JSON相对于XML来讲,数据的体积小,传递的速度更快些。
  (8).数据交互方面。
  JSON与JavaScript的交互更加方便,更容易解析处理,更好的数据交互。
  (9).数据描述方面。
  JSON对数据的描述性比XML较差。
  (10).传输速度方面。
  JSON的速度要远远快于XML。