假定为学校开发一个在线学习系统,结合上个实验的安全需求分析与本章的《一个基本web应用系统的安全功能设计》,请给出该系统的安全设计。





一、 实验目的
- 理解并掌握Web应用系统的安全架构设计方法。
- 依据国家标准(如GB/T 22239)及行业规范,针对具体系统进行安全功能设计。
- 将安全需求转化为具体的技术实现方案(如身份认证、访问控制、数据安全等)。
二、 实验环境
- 操作系统:Windows / Linux
- 设计工具:Visio / ProcessOn / Word
- 参考标准:《信息系统安全等级保护基本要求》(GB/T 22239-2008) 等(如教科书图1所示)
三、 实验内容与步骤(核心部分)
1. 系统安全架构分层设计
根据教科书7.3.1节,我们将"学校在线学习系统"划分为五个层次进行针对性设计:
- 终端层: 师生使用的PC及移动设备。
- 网络层: 校园网边界防护,Web应用防火墙部署。
- 主机层: 操作系统加固,最小权限原则。
- 应用层: 核心业务逻辑安全(登录、选课、成绩录入)。
- 数据层: 数据库加密存储与备份。
2. 应用安全功能详细设计(对应教科书7.3.1(1))
(1) 身份认证设计
- 多因素认证: 针对管理员 和教师角色,采用"用户名/口令 + 手机动态验证码"的双因素认证方式(符合教科书图2中"等级保护三级及以上系统应至少采用两种认证方式"的要求)。学生用户采用"用户名/口令 + 图形验证码"。
- 密码存储策略: 用户密码在数据库中严禁明文存储。设计采用 SHA-256 加盐(Salt) 的哈希算法进行存储(符合教科书图2中"存储用户密码的哈希值,加入随机值"的要求)。
- 防暴力破解: 设计账户锁定机制,同一账号连续 5次 登录失败后,锁定账号 30分钟(符合教科书图2中"设计账号锁定功能"的要求)。
(2) 访问控制设计
- 基于角色的访问控制: 设计RBAC模型。
- 学生: 仅能访问课程浏览、作业提交、个人成绩查询模块。
- 教师: 可访问课程管理、成绩录入、作业批改模块。
- 管理员: 可访问用户管理、系统配置模块。
- 最小权限原则: 所有接口默认拒绝访问,仅在服务端显式校验权限通过后放行(符合教科书图2中"授权粒度尽可能小"、"在服务器端实现访问控制"的要求)。
(3) 输入与输出验证设计
- 输入验证: 对所有用户输入(如评论区、作业上传文件名)进行白名单验证。限制特殊字符(如
',;,<script>),防止SQL注入和XSS攻击(符合教科书图3中"对所有来源不在可信范围之内的输入数据进行验证"的要求)。 - 输出编码: 在页面展示用户提交的数据前,进行HTML实体编码。
(4) 会话管理设计
- Cookie安全: 设置Session Cookie的属性为
HttpOnly(防止JS读取)和Secure(仅HTTPS传输)(符合教科书图4中"设置Cookie的Secure...属性"的要求)。 - 会话超时: 用户无操作超过 20分钟,系统自动注销会话(符合教科书图4中"设计合理的会话存活时间"的要求)。
- 防CSRF: 在关键操作(如修改密码、提交成绩)的表单中加入一次性随机令牌(Token)。
(5) 异常管理与审计日志
- 通用错误信息: 登录失败时,统一提示"用户名或密码错误",不区分是用户不存在还是密码错误,防止信息泄露(符合教科书图4中"使用通用错误信息"的要求)。
- 日志审计: 记录关键操作日志(登录、修改成绩、删除课程)。日志内容包含:用户ID、时间戳、IP地址、操作类型、结果(成功/失败)。日志文件存储在Web目录之外,防止被下载(符合教科书图5中"禁止将业务日志保存到Web目录下"的要求)。
3. 数据安全设计(对应教科书7.3.1(2))
(1) 机密性设计
- 传输加密: 全站启用 HTTPS (TLS 1.2+) 协议,防止登录凭证和敏感数据在传输过程中被嗅探(符合教科书图6中"使用安全的传输协议"的要求)。
- 存储加密: 学生的身份证号、手机号等敏感字段,在数据库中使用 AES-256 算法加密存储。
(2) 完整性设计
- 利用数据库的事务机制(Transaction)保证选课、成绩录入操作的原子性,防止数据不一致。
四、 实验结果(及调试过程)
(此处建议画一个简单的图或者文字描述)
设计成果描述:
完成了《学校在线学习系统安全设计说明书》。
- 架构层面: 确定了基于B/S架构的安全防护体系。
- 功能层面: 详细定义了登录模块的加密流程(前端RSA加密 -> 传输 -> 后端SHA256校验)和基于RBAC的权限控制矩阵。
- 数据层面: 制定了敏感数据加密存储规范和数据库备份策略。
符合性检查:
本设计方案已对照教科书7.3节要求自查:
-
√\] 身份认证已包含防暴力破解和强密码策略。
-
√\] 数据传输已设计HTTPS通道。



