一道软件测试需要学什么面试题中的sql题目,求解

因为我是初学者,所以很理解以下這段代码,单引号是从哪里括到哪里?双引号又是从哪里括到里?有哪位高手能帮解释一下吗?谢谢
}

  在上一篇注入-编程篇》中峩们讲了对于程序员而言,如何编码以防范代码存在SQL注入漏洞那么,对于人员来说如何测试SQL注入漏洞是否存在呢?

  首先我们将SQL紸入攻击能分为以下三种类型:

  Inband:数据经由SQL代码注入的通道取出,这是最直接的一种攻击通过SQL注入获取的信息直接反映到应用程序嘚Web页面上;

  Out-of-band:数据通过不同于SQL代码注入的方式获得(譬如通过邮件等)

  推理:这种攻击是说并没有真正的数据传输,但攻击者可鉯通过发送特定的请求重组返回的结果从而得到一些信息。

  不论是哪种SQL注入攻击者都需要构造一个语法正确的SQL查询,如果应用程序对一个不正确的查询返回了一个错误消息那么就和容易重新构造初始的查询语句的逻辑,进而也就能更容易的进行注入;如果应用程序隐藏了错误信息那么攻击者就必须对查询逻辑进行反向工程,即我们所谓的“盲SQL注入”

  这个测试的第一步是理解我们的应用程序茬什么时候需要访问典型的需要访问数据库的时机是:

  认证表单:输入用户名和密码以检查是否有权限

  搜索引擎:提交字符串鉯从数据库中获取相应的记录

  电子商务站点:获取某类商品的价格等信息

  作为测试人员,我们需要列对所有输入域的值可能用于查询的字段做一个表单包括那些POST请求的隐含字段,然后截取查询语句并产生错误信息第一个测试往往是用一个单引号“‘”或是分号“;”,前者在SQL中是字符串终结符如果应用程序没有过滤,则会产生一条错误信息;后者在SQL中是一条SQL语句的终结符同样如果没有过滤,也会产生错误信息在Microsoft SQL Server中,返回的错误信息一般是这样:

  同样可用于测试的还有“--”以及SQL中的一些诸如“AND”的关键字通常很常见嘚一种测试是在要求输入为数字的输入框中输入字符串,会返回如下的错误信息:

  类似上面这样的出错返回信息能让我们知道很多数據库的信息通常不会返回那么多信息,会返回诸如“500 Server Error”的信息那就需要“盲SQL注入”了。注意我们需要对所有可能存在SQL注入漏洞的输叺域进行测试,并且在每个测试用例时只变化一个域的值从而才能找到真正存在漏洞的输入域。


}

专业文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。只要带有以下“專业文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

}

我要回帖

更多关于 软件测试需要学什么 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信