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

ASP.Net MVC Web App can I / should I securely store 3rd party login details

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

根据用户登录,在将 Web 应用程序登录映射到所需的 Web 服务登录后,他们也会登录到 Web 服务。它不是一对一的映射登录,用户可以select访问许多可用网络服务中的任何一个。

管理模块应允许将 Web 应用程序登录分配给 Web 服务登录。

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

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

切勿以可逆格式(可以完全解密)存储登录详细信息。

如果服务器可逆登录详细信息,那么黑客将能够在成功窃取数据库后做同样的事情来检索每个人的登录信息。

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

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