我有一个ASP.NET(MVC4)站点,它有一些敏感信息,我采取了一些安全措施:输入验证,使用Razor语法,所有查询都通过LINQ执行,表单经过令牌验证。我们都知道没有系统100%的违规证据。
信息只有在连接到用户时才是敏感的,所以我想知道是否有办法加密链接,我的意思是,如果发生安全漏洞,黑客将无法连接用户有信息。
现在我正在以“常规”方式与相关实体合作:
User
-- UserId
-- UserName
SensitiveTable
-- Id
-- UserId
-- Sensitive
有没有办法“加密”关系,以便用户能够管理他/她的信息,潜在的攻击者无法连接这两个表?
我应采取其他安全措施来防止这种情况吗?
答案 0 :(得分:0)
您可以使用BCrypt之类的东西对用户ID(或电子邮件或其他内容)进行哈希处理,并将系统盐硬编码到应用程序代码中,也可以使用自己的算法生成每用户盐,这将停止您在数据库中执行从User表连接到Sensitive表的任何查询。
这将使得访问您的数据库而不是您的应用程序代码的人难以计算出关系。