试题一
阅读以下关于软件架构设计与评估的叙述,回答问题1和问题2。
【说明】
某电子商务公司为了更好地管理用户,提升企业销售业绩,拟开发一套用户管理系统。该系统的基本功能是根据用户的消费级别、消费历史、信用情况等指标将用户划分为不同的等级,并针对不同等级的用户提供相应的折扣方案。在需求分析与架构设计阶段,电子商务公司提出的需求、质量属性描述和架构特性如下:
(a)用户目前分为普通用户、银卡用户、金卡用户和白金用户四个等级,后续需要能够根据消费情况进行动态调整;
(b)系统应该具备完善的安全防护措施,能够对黑客的攻击行为进行检测与防御;
(c)在正常负载情况下,系统应在0.5秒内对用户的商品查询请求进行响应;
(d)在各种节假日或公司活动中,针对所有级别用户,系统均能够根据用户实时的消费情况动态调整折扣力度;
(e)系统主站点断电后,应在5秒内将请求重定向到备用站点;
(f)系统支持中文昵称,但用户名要求必须以字母开头,长度不少于8个字符;
(g)当系统发生网络失效后,需要在15秒内发现错误并启用备用网络;
(h)系统在展示商品的实时视频时,需要保证视频画面具有1024×768像素的分辨率,40帧/秒的速率;
(i)系统要扩容时,应保证在10人·月内完成所有的部署与测试工作;
(j)系统应对用户信息数据库的所有操作都进行完整记录;
(k)更改系统的Web界面接口必须在4人·周内完成;
(l)系统必 ……此处隐藏29946个字…… 型架构风格进行设计。图1从下到上依次为数据存储层、分布式通信处理层、逻辑处理层和表现层。随后,选择相关的技术以支持各层所需完成的任务。
14、SQL注入攻击,就是通过把SQL命令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
可以通过以下方式抵御SQL注入攻击:
●使用正则表达式;
●使用参数化的过滤性语句;
●检查用户输入的合法性;
●用户相关数据加密处理;
●存储过程来执行所有的查询;
●使用专业的漏洞扫描工具。
[考点]本题考查Web系统架构设计方面的相关知识和解决实际问题的能力。
[解析] SQL注入攻击是黑客对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大的一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。
SQL注入攻击属于数据库安全攻击手段之一,可以通过数据库安全防护技术实现有效防护,数据库安全防护技术包括:数据库漏扫、数据库加密、数据库防火墙、数据脱敏、数据库安全审计系统。
为了抵御SQL注入攻击,可以采用如下方式:使用正则表达式、使用参数化的过滤性语句、检查用户输入的合法性、用户相关数据加密处理、存储过程来执行所有的查询、使用专业的漏洞扫描工具等。