我正在寻找一些有关特定于客户端/服务器解决方案的体系结构建议。保护敏感实体数据
客户端是一个相当厚的客户端,主要是服务器保持持久性,并发性和基础设施问题。 服务器包含许多包含敏感信息和公共信息的实体。例如,假设实体是人,假定社会安全号码和姓名是敏感的,并且年龄是公开可见的。
启动客户端时,会向用户呈现多个实体,而不会泄露任何敏感信息。在任何时候,用户都可以选择登录并对服务器进行身份验证,但鉴于身份验证成功,用户可以访问敏感信息。
客户端正在托管一个域模型,并且我正在考虑将其实现为某种“延迟加载”,从而使第一个请求实例化实体,然后使用敏感数据刷新它们。还没有被披露时,他们的实体干将会抛出敏感信息出现异常,f.e:
class PersonImpl : PersonEntity
{
private bool undisclosed;
public override string SocialSecurityNumber {
get {
if (undisclosed)
throw new UndisclosedDataException();
return base.SocialSecurityNumber;
}
}
}
另一种更友好的方式可能是具有指示值是未公开的值对象。
有些担忧:
- 如果什么,然后出来在用户登录时,敏感数据被加载,但必须再次披露。
- 有人可能会争辩说,这种类型的功能属于域内,而不属于某些基础设施实现(即存储库实现)。
- 按照一贯的特性较大数量的问题时有这种类型的功能杂波的代码
任何见解或讨论表示赞赏的危险!