2

我正在开发一个 asp.net 网站,该网站需要存储另一个网站的用户密码,以便我可以定期检索数据而无需用户继续登录。我无法想象在这种情况下单向哈希将如何工作因为用户不会每次都重新输入密码。我假设我需要加密密码以存储在 SQL Server 数据库中,并在需要时对其进行解密。但这就是我遇到困难的地方。基本基础架构是一个 C#/Asp.Net MVC3 网站,该网站在负载平衡的 Azure 计算实例上运行并将数据存储在 SQL Azure 中。我不是一个加密人,我不想犯一个菜鸟错误。那里似乎有很多信息,但对我来说似乎没有什么清楚的。即使我连接的数据不敏感,我希望像对待我的个人数据一样谨慎对待我的用户信息。任何有关如何进行的建议将不胜感激。

编辑:我当然明白存储密码不是最佳做法,但在某些情况下,这简直是不可避免的。我遇到过这个项目,但还没有尝试过: http: //securentity.codeplex.com/。它使用 Web 服务器上的数字证书。

第 3 方网站的用户可以将他们的数据设置为“公开”,在这种情况下我不需要存储他们的密码。所以我可以让用户选择这样做。

4

1 回答 1

1

您应该看看OAuthSingle Sign-On
简单来说:不同系统之间只发送一个身份验证令牌。

您(站点)永远不应该知道用户密码。最多您应该知道网站的密码的哈希值。

阅读上面的两个主题,您将知道如何正确保护您和“邻居”站点。

编辑

简而言之:
另一个站点(站点 B)实现 OAuth 服务器进程。您的站点(站点 A)实施 OAuth 客户端身份验证。从站点 B 请求用户信息时,您将用户重定向到站点 B 身份验证,以允许站点 A 从站点 B 读取有关用户的信息。站点 B 创建站点 A 可用于访问信息的令牌。这个令牌可以是有时间限制的(或没有时间限制的)。

于 2012-07-14T03:32:37.513 回答