刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

阅读下列说明,回答问题。

【说明】
某高校开发了一套基于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应用安全测试中的重要方面,由于用户输入的数据直接参与到SQL语句的构建中,恶意用户可以通过输入特殊数据造成SQL语句的功能改变,从而获取非法权限或对数据库造成破坏。本题中的SQL语句直接拼接用户输入的数据,没有采取任何防护措施,因此存在严重的SQL注入风险。防止SQL注入的方法包括对用户输入的数据进行验证和过滤,确保输入数据的合法性;对特殊字符进行转义处理,避免其被解释为SQL语句的功能符号;采用参数化查询等。在测试阶段,需要设计各种测试用例,验证系统的安全性。

创作类型:
原创

本文链接:阅读下列说明,回答问题。【说明】某高校开发了一套基于Web的教务管理系统,实现教务管理人员课程设置、

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share