C# 如何在出现安全漏洞时保护信息?

C# 如何在出现安全漏洞时保护信息?,c#,asp.net-mvc,security,asp.net-mvc-4,azure,C#,Asp.net Mvc,Security,Asp.net Mvc 4,Azure,我有一个ASP.NET(MVC4)站点,它有一些敏感信息,我采取了一些安全措施:输入验证,使用Razor语法,所有查询都通过LINQ执行,表单都经过令牌验证。但我们都知道,没有一个系统是100%防违约的 只有与用户连接时,信息才是敏感的,因此我想知道是否有办法加密链接,我的意思是,如果出现安全漏洞,黑客将无法将用户与信息连接起来 目前,我正以“常规”方式与相关实体合作: 是否有一种方法可以“加密”关系,以便用户能够管理他/她的信息,而潜在的攻击者将无法连接这两个表 我是否应该采取其他安全措施来防

我有一个ASP.NET(MVC4)站点,它有一些敏感信息,我采取了一些安全措施:输入验证,使用Razor语法,所有查询都通过LINQ执行,表单都经过令牌验证。但我们都知道,没有一个系统是100%防违约的

只有与用户连接时,信息才是敏感的,因此我想知道是否有办法加密链接,我的意思是,如果出现安全漏洞,黑客将无法将用户与信息连接起来

目前,我正以“常规”方式与相关实体合作:

是否有一种方法可以“加密”关系,以便用户能够管理他/她的信息,而潜在的攻击者将无法连接这两个表

我是否应该采取其他安全措施来防止这种情况发生?

您可以使用BCrypt之类的工具对用户ID(或电子邮件或其他内容)进行散列,并使用硬编码到应用程序代码中的系统salt,也可以使用您自己的算法生成每个用户的salt,这将阻止您在数据库中执行从用户表连接到敏感表的任何查询


这将使访问您的数据库(而不是您的应用程序代码)的人很难处理好关系。

根据受到的危害,攻击者可能会对您的服务器执行任何操作。此网站运行在Azure网站上,因此我不管理服务器安全,在这种情况下,你认为在数据库中实施措施是没有用的,而只关注用户界面吗?谢谢,我认为这是一个很好的措施,以防数据库受损。
User
  -- UserId
  -- UserName

SensitiveTable
  -- Id
  -- UserId
  -- Sensitive