抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

典型软件架构的脆弱性分析

软件脆弱性:软件设计脆弱性、软件结构脆弱性

软件架构脆弱性是结构脆弱性的一种。

分层架构

  1. 层间的脆弱性。一旦某个底层发生错误,那么整个程序将会无法正常运行。
  2. 层间通信的脆弱性。大量层间消息交互容易造成性能下降。

C/S架构

  1. 客户端软件的脆弱性。存在程序被分析逆向,数据被截取的安全隐患。
  2. 网络开放性的脆弱性。客户端可以直接读取服务器端的数据。
  3. 网络协议的脆弱性。数据分布特性,客户端遭受灾害导致数据丢失。

B/S架构

  1. 若使用HTTP协议,B/S架构相比C/S架构更容易被入侵。

事件驱动架构 EDA

  1. 组件的脆弱性。组件削弱了自身对系统的控制力,无法知晓其他组件执行情况。
  2. 组件间数据交换的脆弱性。当大量数据需要在组件间传递时,保证有效传递比较困难。
  3. 组件间逻辑关系的脆弱性。组件间逻辑关系复杂。
  4. 事件驱动容易进入死循环。
  5. 高并发的脆弱性。
  6. 固定流程的脆弱性。

MVC架构

  1. MVC架构的复杂性带来脆弱性。
  2. 视图与控制器间紧密连接的脆弱性。没有控制器,视图应用很有限。
  3. 视图对模型数据的低效率访问的脆弱性。模型操作接口不同,视图可能需要多次访问以获得足够显示数据。

微内核架构

  1. 微内核架构难以进行良好的整体优化。
  2. 微内核系统的进程间通信开销比较大。
  3. 通信损失率高。

微服务架构

  1. 开发人员需要处理分布式系统的复杂结构。
  2. 开发人员要设计服务之间的通信机制。
  3. 服务管理的复杂性,开发团队需要全局统筹。

评论