编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

产品安全架构(二)

wxchong 2024-11-23 23:34:59 开源技术 19 ℃ 0 评论

所谓的产品安全架构就是我们如何从业务层面保障产品的安全性。


  • 软件架构

工作当中我们经常听到软件架构,比如三层架构、B/S架构、C/S架构、SOA架构、微服务架构等。如果用通俗一点的话来讲,软件架构就是我们设计软件的思想,比如三层架构,我们把编码的规则人为的分成了三层,每一层主管一定的功能,目的是为了更好地管理。

三层架构、B/S、C/S是我们比较常见的架构模式,SOA和微服务架构会略显陌生,年龄大一点程序员应该是知道企业级架构的,SOA就属于企业级架构思想,即面向服务的架构。SOA比较笨重,是一种基于企业服务总线的架构模式。

SOA现在已经逐渐被微服务架构所取代,微服务架构可以算是一种轻量级的SOA架构,它放弃了中心化的架构模式,服务之间的通信可以通过HTTP、RPC等方式直接发起。

此处的网关是为了更好地控制服务之间的调用,减少服务上下线带来的运维成本。


  • 框架

上节提到的架构还是一种实现思想,而具体的实现方案就是Spring、Django等框架。

MVC是一种框架设计模式,即模型-试图-控制器,如SpringWeb就采用了MVC设计模式,它与三层架构并不冲突,两者属于物理实现与虚拟划分之间的关系。


  • 数据访问层

在架构设计中数据访问层与其他几层存在明显的区别,它需要与数据库打交道。数据库访问层在实现方式上采用了多种形式,如自定义DAL编码、ORM框架、DB Proxy、统一的数据服务等。以上无论采用哪种方法,必须保证数据库的口令只有一个入口。

自定义DAL:自行编码来实现数据访问层;

ORM框架:将关系型数据库中的一行记录与业务逻辑层中的一个对象建立起关联,即对象关系映射;

DB Proxy:一种数据库访问中间件,在存量业务改进时非常有效,在业务上采取跟DB Proxy应用层集成的方式;

统一的数据服务:将数据库封装为数据服务,让数据库不再面向业务提供数据,这种方式后期的灵活性是最高的。


产品安全所讨论的内容是我们如何从编码层面解决安全相关的一系列问题,这也是三道防线的第一道,也是核心道,而运维等更多属于产品安全架构的辅助。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表