使用哈希键查询字符串以访问搜索结果

本文关键字:访问 搜索结果 字符串 查询 哈希键 | 更新日期: 2023-09-27 17:57:44

我需要尽快得到帮助(我只是被要求为明天早上提出一个解决方案)。首席开发人员要求我为以下问题提出一个可能的现有解决方案:

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

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

另一个考虑因素是:我们能不能让这个密钥系统动态,让它随着时间的推移而变化,但第三方开发人员不需要回来更新他们拥有的东西——中间密钥?。

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

使用哈希键查询字符串以访问搜索结果

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

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

亚马逊通过HMAC-SHA256在AWS中使用这种类型的数字签名。请参阅MSDN关于System.Security.Cryptography.HMACSHA256的文档和AWS关于身份验证请求的文档。MD5或SHA单独使用在您的情况下可能也很好。

假设有一种方法可以将每个用户的共享密钥分发给客户端,那么就可以维护该密钥。