我可以/应该安全地存储第三方登录详细信息的ASP.Net MVC Web App

时间:2019-02-19 21:06:05

标签: c# asp.net-mvc security login basic-authentication

我们有一个ASP.Net Web应用程序,我们使用标准的个人用户帐户登录。

根据用户登录名,然后在将Web应用程序登录名映射到所需的Web Service登录名之后,他们也将登录到Web Service中。这不是一对一的映射登录,用户可以选择访问许多可用的Web服务中的任何一个。

  • Web应用程序登录JohnD使用Employee登录详细信息映射到Web ServiceA。
  • Web应用程序登录FredF使用维护者登录详细信息映射到Web服务B;
  • 使用访问者登录详细信息将Web App登录BarneyR映射到Web服务B;

管理模块应允许将Web App登录分配为Web Service登录。

对于概念验证,我们在Web应用程序中嵌入了一些Web服务登录详细信息。这显然是不安全的,我们需要将Web Service登录详细信息安全地存储在SQL Server表中以某种方式加密的某个位置吗?在WebConfig中加密?

安全地存储和检索映射的登录详细信息的最佳方法是什么?还是执行此两步登录逻辑的更好方法?

1 个答案:

答案 0 :(得分:1)

永远不要以可逆格式存储登录详细信息(可以完全解密)。

如果登录信息是服务器可逆的,那么黑客将能够在成功窃取数据库后执行相同的操作来检索每个人的登录信息。

您自己网站的登录信息应以一种哈希+加盐的方式存储。没有理由为第三方网站使用较低级别的安全性。

具有访问权限的OAuth应该是您的问题的答案,因为它不需要用户向您的站点授予对第三方网站的完全访问权限。您的网站遭到入侵后,第3方网站的登录信息将完全不受影响。用户可以断开链接,以防止进一步损害其第三方网站的帐户,而无需等待管理员操作。