【问题标题】:Querystring with Hash Key to access search results带有哈希键的查询字符串以访问搜索结果
【发布时间】:2013-01-21 00:47:12
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: c# hash key md5 salt


    【解决方案1】:

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

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

    亚马逊在 AWS 中使用这种类型的数字签名和 HMAC-SHA256。请参阅 System.Security.Cryptography.HMACSHA256 上的 MSDN 文档和 Authenticating Requests 上的 AWS 文档。在您的情况下,单独使用 MD5 或 SHA 可能也可以正常工作。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-24
      • 2020-05-15
      • 2018-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-16
      相关资源
      最近更新 更多