4

这是场景:

  • 您有两个独立的网站,它们存在于不同的环境中(IE 不同的数据库、不同的 Web 服务器/域)
  • 您可以完全控制两个站点的代码,但从上述观点来看,它们不能直接与彼此的数据库通信
  • 您必须安全地将用户从站点 A 转移到站点 B

实现这一点的最佳方法是什么?简单地通过查询字符串在站点之间发送用户标识符是不安全的,即使是加密的,因为其他人可以获得 URL。似乎标准解决方案是将用户标识符与网站 A 创建的另一个临时密钥一起传递,并且网站 B 知道。如果是这种情况,使用临时密钥安全设置系统的正确方法是什么?

谢谢!

4

4 回答 4

2

我正在做这样的事情。我现在能想到的最好的事情是传递用户 ID 的哈希值,或者如果这让你担心,那就是其他一些用户数据的哈希值。

如果您想要临时密钥(我也可能会这样做),那么如何在 A 上设置一个 Web 服务,B 可以调用该服务以根据临时密钥获取用户 ID。这样,它是一个完全独立的调用,并且可以得到保护。

于 2009-12-08T17:12:39.390 回答
2

看看“直通身份验证”,它是一个允许用户身份从一个系统传递到另一个系统的概念。

此外,您可能想要尝试的另一个想法是创建一个不会公开用户信息并将其传递的安全令牌。但是,这需要两个系统都具有相似的数据来验证令牌。正如另一个答案所建议的那样,哈希是创建有关敏感信息的非描述性位的非常好的用途。

于 2009-12-08T17:13:10.357 回答
1

在两端通过 HTTPS 编写 Web 服务调用以检索用户详细信息,并且仅适用于特定的登录对。问题解决了。您需要使两端的登录 ID 统一在 cookie 上使用单点登录。Vipin Samar 的论文中的更多详细信息:“Web 应用程序的 Cookie 上的单点登录”

除非他们进入其中一台服务器上的应用程序代码,否则他们无法获取 URL/密码。

于 2009-12-08T17:50:36.410 回答
0

您需要在站点 A 和站点 B 之间传递信息,但您不需要让用户成为获取该信息的渠道。

站点 B 可以具有允许站点 A 为用户创建会话的 Web 服务。在此设计中,交互将如下所示:

  • 用户单击站点 A 上的按钮
  • 站点 A 调用站点 B 上的 Web 服务,将临时登录 URL 传递回站点 A
  • 站点 A 将用户重定向到站点 B 上的临时 URL
于 2009-12-08T17:36:14.353 回答