0

我需要尽快帮助(我只是被要求在明天早上提出解决方案)。首席开发人员让我想出一个可能已经存在的解决方案来解决以下问题:

我们有第三方网站公开使用的 C# 搜索结果页面,但我们将通过传递到查询字符串的哈希键添加访问限制。

首先,第三方网站开发人员将访问一个我们将创建的新页面,以根据他们所处的状态自动生成哈希密钥。然后他们会将密钥添加到他们的链接中。当我们从他们的链接之一收到请求时,我们将尝试将密钥与我们在数据库中的内容进行匹配,以允许访问结果 - 我们还希望检查域/IP 地址等额外信息,以防止欺骗和其他各种攻击。

另一个考虑因素是:我们是否可以使这个密钥系统动态化,使其随着时间的推移而变化,但第三方开发人员不需要回到我们这里来更新他们所拥有的——中间密钥?

问题是这种情况下的最佳解决方案是什么?那里已经有类似的东西了吗?在查询字符串中使用哈希键是正确/最好的方法吗?

4

1 回答 1

0

通常在这种情况下,您有一个标识符和一个共享密钥。

标识符在查询中传递,以便您识别用户。共享密钥用于散列算法以提供请求的校验和。这通常在查询字符串中发送(在第三方上很容易)或作为 HTTP 标头发送。

Amazon 在 AWS 中使用这种类型的数字签名和 HMAC-SHA256。请参阅有关System.Security.Cryptography.HMACSHA256的 MSDN 文档和有关Authenticating Requests的 AWS 文档。单独使用 MD5 或 SHA 也可能适用于您的情况。

假设您有办法将其分发给客户,您可以维护每个用户的共享密钥。

于 2013-02-05T23:12:57.750 回答