当前位置:首页计算机类软件水平考试中级软件评测师->某高校开发了一套基于Web的教务管理系统,实现教务管理人员课

某高校开发了一套基于Web的教务管理系统,实现教务管理人员课程设置、学生选课和成绩查询、教师上传成绩以及特殊情况下教务处对成绩进行修改等功能。系统基于Java EE平台实现,采用表单(Form)实现用户数据的提交并与用户交互。

系统要支持:

7在特定时期内100个用户并发时,主要功能的处理能力至少要达到10个请求/秒,平均数据量8KB/请求;

8用户可以通过不同的移动设备、操作系统和浏览器进行访问。

系统实现时,对成绩更新所用的SQL语句如下:

"UPDATE StudentScore SET score="+intCTientSubmitScore+"WHERE Stuent_ID='"+strStudentID+"';"

设计1个测试用例,以测试该SQL语句是否能防止SQL注入,并说明该语句是否能防止SQL注入,以及如何防止SQL注入。

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

设计如下测试:【注:设计类似如下用例的一个即可,其中包含SQL功能符号使SQL变为不符合设计意图即可,如包含',DROP等】。

(1)intClientSubmitScore: 100 --, strStudentID: 20130002,则该SQL变为:

UPDATE StudentScore SET score = 100 -- WHERE Student_ID='20130002';

(2)intClientSubmitScore: 100, strStudentID: 20130002';DROP TABLE StudentScore--,则该SQL语句变为:

UPDATE StudentScore SET score=100 WHERE Student_ID='20130002'; DROP TABLE

StudentScore -';

从测试用例所拼接处的SQL可以看出,该SQL语句不安全,容易造成SQL注入。

防止SQL注入的方法主要有:拼接SQL之前对特殊符号进行转义,使其不作为SQL语句的功能符号。

【解析】

本问题考查Web应用安全性方面的SQL注入,SQL注入是Web应用安全性测试的重要方面。

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

本系统实现时,对成绩更新所用的如下SQL语句:

"UPDATE StudentScore SET Score="+intClientSubmitScore+"WHERE Stuent_ID='"+strStudentID+"';"

采用拼接字符串方式,无法防止SQL注入。例如intClientSubmitScore:100 --, strStudentID:20130002,则该SQL变为:

UPDATE StudentScore SET score=100 -- WHERE Stuent_ID='20130002';

--是SQL中注释符号,其后的内容为注释,这样上述语句中一之后的内容变为注释,只要StudentScore表中所有的记录的score都变为100,而没有受到WHERE子句后的学号限制。

再比如intClientSubmitScore:100,strStudentID:20130002'or'a'='a,则该SQL变为:

UPDATE StudentScore SET score=100 WHERE Stuent_ID='20130002'or'a'='a;

因为'a'='a'条件总是成立,因此,SQL执行结果包括学生成绩表中所有行的score都更新为100分。

更为严重的情况下,用户输入DROP等功能性命令,会造成数据库表的永久删除等严重后果,如strStudentID:20130002';DROP TABLE StudentScore --,则该SQL语句变为:

UPDATE StudentScore SET Score=100 WHERE Stuent_ID='20130002';DROP TABLEStudentScore--';

防止SQL注入的方法主要有:拼接SQL之前对特殊符号进行转义或者等价方式,使其不作为SQL语句的功能符号。验证所有输入数据能从输入层面防止SQL注入。

SQL注入在使用SSL的应用中仍然存在,甚至是防火墙也无法防止SQL注入。因此,在测试Web应用时,需要认真仔细设计测试用例,采用Web漏洞扫描工具等进行检查,以保证不存在SQL注入机会。

更新时间:2021-11-28 03:19

你可能感兴趣的试题

单选题

Advancements in ( )have contributed to the growth of the automotive industry through the creation and evolution of self-driving vehicles.

  • A.Artificial Intelligence
  • B.Cloud Computing
  • C.Internet of Things
  • D.Big Data
查看答案
单选题

In project human resource management , ( )is not a source of power for the project manager.

  • A.referent power
  • B.expert power
  • C.reward power
  • D.audit power
查看答案
单选题

At the project establishment stage , the feasibility study mainly includes techinical feasibility analysis , ( ), operation environment feasibility analysis and other aspects of feasibility analysis.

  • A.detail feasibility analysis
  • B.opportunity analysis
  • C.economic feasibility analysis
  • D.risk analysis
查看答案
单选题

( )is a grid that shows the project resources assigned to each work package.

  • A.Stakeholder engagement assessment matrix
  • B.Requirements traceability matrix
  • C.Probability and impact matrix
  • D.Responsibility assignment matrix
查看答案
单选题

Xinhua News Agency reported in January 2022,Chian will further promote the developmet of a digital economy during the 14th Five-Year Plan eriod(2021-2025). The plan also emphasized industrial ( )transformation.

  • A.digital
  • B.networking
  • C.intelligentize
  • D.informatization
查看答案
单选题

某公司投资一个使用寿命为5年的项目,第一年年初投入1000万元,从第1年到第5年每年年末都有净现金流量300万元。则项目的静态投资回收期为( )年。

  • A.2
  • B.2.5
  • C.3
  • D.3.3
查看答案
单选题

下图是某地的街区网络图(单位:)里),疫情防控期间,一辆消毒车从疾控中心出发,需要消杀所有的街道并返回疾控中心。该消毒车完成消杀工作至少需要运行( )公里 。

高级信息系统项目管理师,历年真题,2022年上半年(上午)《信息系统项目管理师》真题

  • A.43
  • B.45
  • C.46
  • D.48
查看答案
单选题

某公司有东部、中部、西部三个生产基地,生产的产品需要运送带甲、乙、丙、丁四个市场,从生产基地到各个市场的单位运价及产量和需求量如表所示,完成该运输任务所需的最小运费为( )。

高级信息系统项目管理师,历年真题,2022年上半年(上午)《信息系统项目管理师》真题

  • A.242
  • B.244
  • C.289
  • D.302
查看答案
单选题

某炼油厂每季度需供应合同单位汽油15吨,煤油12吨,重油12吨,该厂从甲乙两处运回原油提炼,已知两处炼油成分如表所示,从甲处采购原油价格为2000元/吨,乙处为2900元/吨,为了使成本最低,炼油厂应从甲处购15吨,乙处采购( )吨。

高级信息系统项目管理师,历年真题,2022年上半年(上午)《信息系统项目管理师》真题

  • A.20
  • B.25
  • C.30
  • D.35
查看答案
单选题

某炼油厂每季度需供应合同单位汽油15吨,煤油12吨,重油12吨,该厂从甲乙两处运回原油提炼,已知两处炼油成分如表所示,从甲处采购原油价格为2000元/吨,乙处为2900元/吨,为了使成本最低,炼油厂应从甲处购( )吨,乙处采购20吨。

高级信息系统项目管理师,历年真题,2022年上半年(上午)《信息系统项目管理师》真题

  • A.15
  • B.20
  • C.25
  • D.30
查看答案