@[toc]
题目
某公司拟开发一个物流车辆管理系统,该系统可支持各车辆实时位置监控、车辆历史轨迹管理、违规违章记录管理、车辆固定资产管理、随车备品及配件更换记录管理、车辆寿命管理等功能需求。其非功能性需求如下:
- (1)系统应支持大于50个终端设备的并发请求;
- (2)系统应能够实时识别车牌,识别时间应小于1s;
- (3)系统应7X24小时工作;
- (4)具有友好的用户界面;
- (5)可抵御常见SQL注入攻击;
- (6)独立事务操作响应时间应小于3s;
- (7)系统在故障情况下,应在1小时内恢复;
- (8)新用户学习使用系统的时间少于1小时。
面对系统需求,公司召开项目组讨论会议,制订系统设计方案,最终决定基于分布式架构设计实现该物流车辆管理系统,应用Kafka、Redis数据缓存等技术实现对物流车辆自身数据、业务数据进行快速、高效的处理。
【问题1】
请将上述非功能性需求(1)~(8)归类到性能、安全性、可用性、易用性这四类非功能性需求。
【答案1】
- (1)系统应支持大于50个终端设备的并发请求;
- (2)系统应能够实时识别车牌,识别时间应小于1s;
- (3)系统应7X24小时工作;
- (4)具有友好的用户界面;
- (5)可抵御常见SQL注入攻击;
- (6)独立事务操作响应时间应小于3s;
- (7)系统在故障情况下,应在1小时内恢复;
- (8)新用户学习使用系统的时间少于1小时。
性能: 1、2、6
安全性:5
可用性 :3、7
易用性: 4、8
【问题2】
经项目组讨论,完成了该系统的分布式架构设计,如图5-1所示。请从下面给出的(a)~(j)
中进行选择,补充完善图5-1中(1)~(7)处空白的内容。
- (a)数据存储层
- (b)Spuct2
- (c) 负载均衡层
- (d)表现层
- (e)HTTP协议
- (f)Redis数据缓存
- (g)Kafka分发消息
- (h)分布式通信处理层
- (i)逻辑处理层
- (j)CDN内容分发
【答案2】
(1) -----------(d)
(2) ----------- (e)
(3) ----------- (i)
(4) ----------- (h)
(5) ----------- (g)
(6) ----------- (f)
(7) -----------(a)
【问题3】
该物流车辆管理系统需抵御常见的SQL注入攻击,请用200字以内的文字说明什么是SQL注入攻击,并列举出两种抵御SQL注入攻击的方式。
【答案3】
SQL注入攻击,就是通过把SQL命令插入到 Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
可以通过以下方式抵御SQL注入攻击:
- 使用正则表达式;
- 使用参数化的过滤性语句;
- 检查用户输入的合法性;
- 用户相关数据加密处理;
- 存储过程来执行所有的查询;
- 使用专业的漏洞扫描工具。