首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。 【说明】 某高校开发了一套基于Web的教务管理系统,实现教务管理人员课程设置、学生选课和成绩查询、教师上传成绩以及特殊情况下教务处对成绩进行修改等功能。系统基于Java EE平台实现,
阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。 【说明】 某高校开发了一套基于Web的教务管理系统,实现教务管理人员课程设置、学生选课和成绩查询、教师上传成绩以及特殊情况下教务处对成绩进行修改等功能。系统基于Java EE平台实现,
admin
2015-05-21
42
问题
阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】
某高校开发了一套基于Web的教务管理系统,实现教务管理人员课程设置、学生选课和成绩查询、教师上传成绩以及特殊情况下教务处对成绩进行修改等功能。系统基于Java EE平台实现,采用表单(Form)实现用户数据的提交并与用户交互。
系统要支持:
(1)在特定时期内100个用户并发时,主要功能的处理能力至少要达到10个请求/秒,平均数据量8KB/请求;
(2)用户可以通过不同的移动设备、操作系统和浏览器进行访问。
系统实现时,对成绩更新所用的SQL语句如下:
“UPDATE StudentScore SET score==”+intClientSubmitScore+“WHERE Stuent_ID=‘”+strStudentlD+‘‘’:”
设计1个测试用例,以测试该SQL语句是否能防止SQL注入,并说明该语句是否能防止SQL注入,以及如何防止SQL注入。
选项
答案
设计如下测试: (1)intClientSubmitScore:100--,strStudentlD:20130002,则该SQL变为: UPDATE StudentScore SET score=100 一一WHERE Student—ID=’20130002’; (2)intClientSubmitScore:100,strStudentlD: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注入。恶意用户输入不期望的数据,拼接后提交给数据库执行,造成可能使用其他用户身份、查看其他用户的私密信息,还可能修改数据库的结构,甚至是删除应用的数据库表等严重后果。因此需要在测试阶段进行认真严格的测试。
本系统实现时,对成绩更新所用的如下8QL语句:
“UPDATE StudentScore SET score=”+intClientSubmitScore+”WHERE Stuent_ID= ’ "+StrStuden’tID+”’;”
采用拼接字符串方式,无法防止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 TABLE
StudentScore--’;
防止SQL注入的方法主要有:拼接SQL之前对特殊符号进行转义或者等价方式,使其不作为SQL语句的功能符号。验证所有输入数据能从输入层面防止SQL注入。
SQL注入在使用SSL的应用中仍然存在,甚至是防火墙也无法防止SQL注入。因此,在测试Web应用时,需要认真仔细设计测试用例,采用Web漏洞扫描工具等进行检查,以保证不存在SQL注入机会。
转载请注明原文地址:https://kaotiyun.com/show/v7WZ777K
本试题收录于:
软件评测师下午应用技术考试题库软考中级分类
0
软件评测师下午应用技术考试
软考中级
相关试题推荐
信息系统项目实施过程中往往会出现进度滞后、投资超预算等情况,这说明该项目需加强()。
知识产权保护的监理应该坚持全过程的管理,管理措施不包括()。
某工程活动路径图如下所示,弧上的标记为活动编码及需要的完成时间,该工程的关键路径为()。
在某金融安全信息系统建设中,由于监理工程师小王不了解金融风险相关知识,未发现本应发现的问题和隐患,未能有效履行监理责任。该事项属于()风险。
监理工程师必须具备的条件有______。①具有高级职称②取得监理工程师培训证书③通过信息系统监理师考试④参加全国或地方信息监理协会⑤取得主管部门颁发的《信息系统工程监理工程师证书》并从事监理工作。
测试是信息系统工程质量监理最重要的手段之一,这是由信息系统工程的特点所决定的,测试结果是判断信息系统工程质量最直接的依据之一。在整个质量控制过程中,可能存在承建单位、监理单位、建设单位以及公正第三方测试机构对工程的测试。各方的职责和工作重点有所不同,下面关
如果通过局域网连接互联网,需要设置TCP/IP协议属性,其中不需要针对(6)指定IP地址。
关于监理工作程序,按照工作顺序划分,不正确的是()。
监理在处理实际监理事务中保持对问题的综合分析能力,不被表象和局部问题所干扰,体现了()原则。
随机试题
党的十五大报告初步画了实现第三步战略目标的蓝图,这被称为新的“三步走”战略。新的“三步走”战略内容是()
患儿男性,2岁,因“外伤后颅骨骨折,反复发热抽搐”就诊。临床可疑脑膜炎。关于肺炎双球菌脑膜炎治疗的描述,错误的是
下列哪项对于治疗糖尿病酮症酸中毒不宜
下列腧穴,不属于手阳明大肠经的是:
2岁,男孩,因感冒1d伴发热入院,体检;39℃,脉搏130/min,意识清楚,咽部充血,其余检查正常。在体检过程中,婴儿突然发呆,双眼上翻,出现四肢强直性、阵挛性运动。下列哪项不是该患儿的护理诊断
为了对项目目标进行动态跟踪和控制,在确定了项目目标计划值后的施工过程中,首先应做的是()。
在孔子所处的春秋末期,西周以来的旧礼制难以继续维持下去了,对此,孔子在情感上并不认同,但是他以自己的实际行动,办起了“私学”,主张“_______”:不论是贵族或平民,也不论出身何处,都可以到他的私学来学习。由此可见,孔子选定了一条道路,就是用教育和文化去
下列有关宋朝考课制度的表述,正确的是()。
在设计算法时,通常应考虑以下原则:首先说设计的算法必须是(15),其次应有很好的(16),还必须具有(17),最后应考虑所设计的算法具有(18)。
【B1】【B18】
最新回复
(
0
)