1、摘要
在现今的大量使用C语言编写的通用软件中,内部数据安全一直是困扰大家的问题,尤其是在编程/设计技能不高的环境中,本文想探讨一下如何提高内部的数据安全,缩短问题定位时间。
本文提及的“内部数据安全”问题定义如下:按照通常的组件内分层设计思路,可以将模块划分为“业务主层”、“业务子层”、“数据层”这3个较粗的逻辑层次,其中业务主层负责整个组件的顶层业务,业务子层负责每个业务细节,维护数据间的关系完整性,数据层负责单类数据的安全。
要做好内部数据的安全性,可以从如下几个角度考虑:
a、业务与数据分离。
b、指针安全。
c、数据内容安全。
2、提纲
数据安全、
3、数据关系
本节讨论两类数据间的直接关系,以及它们在C语言系统中的应用场景和通常的实现方法。
a、单向1:1关系
例如1:Session和Timer之间的关系,业务场景是,Session需要重传
例如2:Peer和Option-DB中的NBR TLV之间的关系,
这种关系通常直接使用指针实现,
b、单向1:N关系
c、单向M:N关系
不存在这种关系。
d、双向1:1关系
例如:链路和反向链路之间,
e、双向1:N关系
f、单向M:N关系