Skip to main content Link Search Menu Expand Document (external link)

非功能性需求参考清单

质量

可测试性

定义 系统支持测试的能力

需求项

  • 可支持Mock机制 保障单元性需求能够独立测试,快速定位Bug。需要权衡测试覆盖率目标与研发成本权衡
  • 单元测试框架 保障白盒测试,快速解决和定位问题

可观察性

定义 系统在生产运行期间,进行监控

可伸缩性

当出现流量暴涨或者暴跌的时候,系统自适应增长。

可靠性

定义 系统运行结果符合用户预期的能力。

需求项

  • 异常处理 当发生异常时,建立统一标准的交互形式,拦截、跟踪、处理、统计异常处理错误。
  • 数据最终一致性 需要保障保障用户请求数据经过多个系统和业务处理后产生的数据在数据库中最终一致。例如x同一名称的基本信息在协作、会议、文档的同步问题。一般采用分布式事务,解决数据同步问题。

可用性

定义 系统正常响应和避免宕机的能力。

需求项

  • 服务注册与发现 保障所有服务7X24小时处于可用状态。前端:发现服务的能力,切换到正确服务的路由 后端:服务注册及内部服务的发现能力
  • 冗余备份

容错性

定义 系统从非正常状态恢复的能力

需求项

  • 故障恢复机制 当出现某个模块或者服务不能正常使用时,可以通过手动或者自动的方式重新拉起服务。如果手动,必须要提示用户。
  • 限流降级机制 采用限制用户每秒请求频次和并发用户数,进行降级
  • 线程池隔离机制 当某类业务的连接出现故障时,其他业务不受影响。
  • 熔断 当请求量超过闸值的时候,快速失败该模块

安全

数据分级

定义 将数据按敏感和重要程度分级,为后续措施提供依据

需求描述 重要数据:不能被篡改的数据,如指令、配置、通告等; 敏感数据:不能被公开的数据,如技术文档、经营数据等。

身份鉴别

定义 提供用户统一账号认证的保障能力。

需求项

  • 账号认证机制 通过统一登陆后,提供安全和可维护的机制
  • 口令复杂度(若有) 涉及敏感与重要数据的口令长度不低于8位,数字、字母、符号至少包含两种
  • 默认口令(若有) 对于默认的初始口令,强制用户初次登录时修改
  • 登录失败处理 不应提示具体错误,如:用户名错误、密码错误等
  • 限制非法登录次数 建议5次以下,超出后锁定用户账户或来源IP,锁定时间根据业务需求而定,并增加额外验证步骤,如图形验证。
  • 在线超时退出 建议配置会话超时30min~1h
  • 登录信息保护 建议在HTTPS基础上再次加密并实施完整性保护与防重放攻击措施。
  • 过期口令(若有) 过期口令不可继续使用,定期更改口令,明确更改周期。
  • 更改口令(若有) 必须包含“旧密码”、“新密码” 和“新密码确认”。
  • 重要操作二次认证、多因子认证等方式。 1.修改密码、忘记密码等用户认证相关;2.资金转移;3.其他重要操作。
  • 禁用或限制匿名、默认账户的访问
  • 最小化角色授权 一个账号对应一个人而不是一个组。
  • 账号失效 执行账户审计并强制失效长期不使用的账户。建议明确账户不使用的最长期限,支持账户的强制失效,并在账户停止时终止会话。
  • 账号禁用 涉及敏感与重要数据的系统账号可以被永久禁用和临时锁定,账号被临时锁定时不影响永久禁用操作。

访问控制

定义 按用户等级和被访问资源性质设置必要的访问规则。

需求项

  • 权限操作 普通用户不能操作权限相关属性和策略(如用户组、权限范围等),除非特别授权。
  • 账号数据 用户自己账号的敏感数据只有自己才能访问。
  • 访问范围 用户应仅能够访问被特定授权的函数、数据文件、URL、控制器、服务及其他资源。禁止用户修改应用程序文件和资源,权限仅限于可读。
  • 最小权限 明确访问敏感数据的用户范围和控制机制,遵循最小权限原则。

个人信息合规

定义 个人信息的规范处理方式

需求项 《信息安全技术 个人信息安全规范》(GB/T35273-2020)

工信部、通管局、网监等部门会对产品的个人信息收集情况进行检查。目前只限于移动端APP,随时可能扩展到小程序和其他终端。处理方式详见https://kb.cvte.com/pages/viewpage.action?pageId=222466750

日志和审计

定义 提供统一的日志审计服务。

需求项

  • 审计员账户 涉及敏感与重要数据的系统要有独立的审计员账户。
  • 日志覆盖每个用户
  • 记录重要用户行为和重要安全事件 所有需要经过访问控制的操作必须记录; 所有成功事件与安全相关的失败事件必须记录。
  • 日志记录格式 事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息。
  • 异常处理 对日志进行完善的异常捕获处理,确保即使日志记录过程发生异常,日志记录仍然能够正确执行。
  • 敏感数据 避免在日志中出现敏感数据。
  • 记录保护措施
    • 定期备份。
    • 安全存储,如:独立保存于应用程序目录之外。
    • 非审计账户无权访问日志记录
    • 非审计账户无法中断日志进程
    • 安全日志需有完整性检查。比如对整个日志文件做MD5运算,保存 hash 值在数据库,管理员访问日志时先做完整性比较。

入侵防范

定义 提供统一的入侵防御机制。

需求项

  • 文件上传限制 严格限制文件名后缀,使用白名单规则仅允许必须的文件后缀。至少应禁止上传jsp、aspx、php等可执行文件。
  • 通信安全 涉及敏感信息和功能的所有外部连接都需经过身份验证。
  • 代码签名 通过代码签名可以保护设备不受攻击,保证所有运行的代码都是被授权的,保证恶意代码在一个正常代码被加载以后不会覆盖正常代码,保证代码在签名后不会被篡改。
  • 数据有效性检验
    • 任何输入应有类型/格式限制
    • 任何输入应有最小、最大长度限制
    • 任何输入应有最小、最大值限制
    • 同类型的输入使用同一验证机制

消息通知(如果有)

定义 提供统一的消息通知机制

需求项

  • 设置发送权限
  • 采用验证码等方式限制发送频率
  • 限制发送目标
  • 限制消息长度、格式、内容等

数据安全

定义 提供数据不被第三方和内部人员非法获取的保障能力。

需求项

  • HTTPS 除了公有云之外,要考虑私有云的证书管理。加强证书识别能力。系统默认函数通常只判断证书存放位置是否可信,而不判断证书本身是否真实,给中间人攻击创造了条件。
  • 关键数据二次加密机制
  • 完整性
    • 确保重要数据传输过程完整性(包括但不限于鉴别数据、升级包、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等)。
    • 确保重要数据存储过程完整性(同上)
  • 保密性
    • 确保敏感数据传输过程保密性(包括但不限于鉴别数据、敏感业务数据和敏感个人信息等)。
    • 确保敏感数据存储过程保密性(同上)。
    • 用户数据脱敏机制

性能

响应速度

定义 系统响应请求并回复请求的时间。

需求项

  • 缓存机制 提供公共的服务器缓存,优化数据库的查询性能。
  • 首页渲染优化机制 实现分模块的性能统计、统一优化服务或者算法。

并发流量

需求项

  • 服务集群机制
  • 服务调度机制 调度服务
  • 多进程机制 实现多进程调度,充分利用现有被分配的计算资源。

网络性能

定义 当网络出现延迟、抖动、中断、流量限制问题时,提供网络通讯的可靠性保障和传输速度提升。

需求项

  • 带宽限流 在前后端网络通讯时,限制每个协议请求的数据量大小,并限制总带宽大小,防止请求的带宽过度占用。
  • 通讯连接与协议优化

计算资源占用

研发效率

在架构初始阶段,研发效率应当是首先被考虑的因素

可重用性

定义 保障业务高内聚、低耦合的实现、支持业务正常运行的公共组件或者构件。

可扩展性

可维护性

产品易用性

信息提示的风格一致性

公用信息提示,如警告、提示等信息提示提供统一风格的组件