当前位置:首页计算机类软件水平考试中级软件评测师->某大型匹萨加工和销售商为了有效管理匹萨的生产和销售情况,欲开

某大型匹萨加工和销售商为了有效管理匹萨的生产和销售情况,欲开发一套基于Web的信息系统。其主要功能为销售、生产控制、采购、运送、存储和财务管理等。系统采用Java EE平台开发,页面中采用表单实现数据的提交与交互,使用图形(Graphics)以提升展示效果。

4、系统实现时,对销售订单的更新所用的SQL语句如下:

PreparedStatementpStmt=connection.prepareStatement("UPDATE SalesOrder SET status= ? WHEREOrderID= ?")

然后通过setString(...);的方式设置参数值后加以执行。

设计测试用例以测试SQL注入,并说明该实现是否能防止SOL注入。

查看答案 纠错
答案:
本题解析:

设计如下测试:[注:设计类似如下用例即可,其中包含SQL功能符号使SQL变为不符合设计意图即可]

PreparedStatement

pStmt=connection.prepareStatement("UPDATE SalesOrder SET status= ? WHERE

OrderID= ?")

采用传递参数的形式,Java的JDBC驱动自动会将其按照相应的类型处理,功能符号会进行转义。因此,该SQL语句是安全。

【解析】

第四小题考查Web应用安全性方面的SQL注入,SQL注入是Web应用安全性测试的重要方面之一。

许多Web应用系统采用某种数据库,接收用户从Web页面中输入,完成展示相关存储的数据(如检查用户登录信息)、将输入数据存储到数据库(如用户输入表单中数据域并点击提交后,系统将信息存入数据库)等操作。在有些情况下,将用户输入的数据和设计好的SQL框架拼接后提交给数据库执行,就可能存在用户输入的数据并非设计的正确格式,就给恶意用户提供了破坏的机会,即SQL注入。恶意用户输入不期望的数据,拼接后提交给数据库执行,造成可能使用其他用户身份,查看其他用户的私密信息,还可能修改数据库的结构,甚至是删除应用的数据库表等严重后果。SQL注入在使用SSL的应用中仍然存在,甚至是防火墙也无法防止SQL注入。因此,在测试Web应用时,需要认真仔细设计测试用例,采用Web漏洞扫描工具等进行检查,进行认真严格的测试,以保证不存在SQL注入机会。

本系统实现时,对销售订单的更新所用的SQL语句如下:

PreparedStatement pStmt=connection.prepareStatement("UPDATE SalesOrder SET status= ? WHERE OrderID= ?;");

然后通过setString(...);的方式设置参数值后加以执行。

在SQL语句中采用参数的方式传递前台传递来的值,因为不论是什么值,都会只作为setString(...)的参数值,不会作为SQL语句的其他功能符,所以本SQL语句更新订单的方式是防止SQL注入的。设计如下测试SQL注入的测试用例:

status: 'fulfilled' --, OrderID: '2014' OR '1'='1'

检查执行结果,或者传递给数据库的SQL语句,会发现所有用例中的功能字符都会经过特定的转义后作为status和OrderID的值。和拼接SQL的方式不同,采用参数形式传递时,Java的JDBC驱动自动会将其按照相应的类型处理,功能符号会进行转义。因此,测试用例中的注释--、OR等都会作为参数的值,不会作为功能符,也就不会改变SQL语句本身的功能结构,该SQL语句是安全的。

更新时间:2021-12-14 07:48

你可能感兴趣的试题

单选题

(  )is the process of transforming information so it is unintelligible to anyone but the intended recipient.

  • A.Encryption
  • B.Decryption
  • C.Security
  • D.Protection
查看答案
单选题

As each application module is completed,it undergoes(  )to ensure that it operates correctly and reliably.

  • A.unit testing
  • B.integration testing
  • C.system testing
  • D.acceptance testing
查看答案
单选题

(  )algorithm specifies the way to arrange data in a particular order.

  • A.Search
  • B.Random
  • C.Sorting
  • D.Merge
查看答案
单选题

After analyzing the source code,(  )generates machine instructions that will carry out the meaning of the program at a later time.

  • A.an interpreter
  • B.a linker
  • C.a compiler
  • D.a converter
查看答案
单选题

(  )can help organizations to better understand the information contained within the data and will also help identify the data that is most important to the business and future business decisions.

  • A.Data processing system
  • B.Big Data analytics
  • C.Cloud computing
  • D.Database management
查看答案
单选题

浏览器开启无痕浏览模式后,(  )依然会被保存下来。

  • A.浏览历史
  • B.搜索历史
  • C.已下载文件
  • D.临时文件
查看答案
单选题

下列协议中,不属于TCP/IP协议簇的是(  )。

  • A.CSMA/CD
  • B.IP
  • C.TCP
  • D.UDP
查看答案
单选题

下列传输介质中,带宽最宽、抗干扰能力最强的是(  )。

  • A.双绞线
  • B.红外线
  • C.同轴电缆
  • D.光纤
查看答案
单选题

数控编程常需要用参数来描述需要加工的零件的图形。在平面坐标系内,确定一个点需要2个独立的参数,确定一个正方形需要(  )个独立的参数。

  • A.3
  • B.4
  • C.5
  • D.6
查看答案
单选题

某书的页码为1,2,3,...,共用数字900个(一个多位数页码包含多个数字),据此可以推断,该书最大的页码为(  )。

  • A.237
  • B.336
  • C.711
  • D.900
查看答案