我看到很多服务,主要是像GMaps或MapQuest这样的地图服务,要求用户先前注册才能获得appKey
。之后,在每次请求时,用户都必须附加appKey
http://server/service?appKey=sdf7dfj34
。{/ p>
我理解这种appKeys不安全,主要用于了解您的服务使用情况。任何人都可以看到您的appKey
并在自己的应用中使用。
我看到其他服务,在注册过程中,要求您将域放在执行代码的位置。通过这种方式,他们可以检查发出请求的域是否与为该域生成的appKey相对应。
我的问题是:
我必须澄清我的意图是用户可以使用JavaScript + AJAX通过appKey请求数据。
感谢。
答案 0 :(得分:0)
您是否只是在appKey中包含域名?例如。 appKey的一部分是域的哈希值(对于最简单的键,您可以使用MD5和base64来编码哈希字节)。
然后验证域,您可以对请求的域进行哈希处理,并将其与appKey进行比较。
澄清:
用户希望获取域" user.domain.com"的appKey。
您哈希" user.domain.com"到SOME_DOMAIN_HASH_TOKEN。
appKey将是SOME_GUID + SOME_DOMAIN_HASH_TOKEN(+可能是其他内容)
用户从某个域将appKey发送到您的服务器。
您从请求中哈希域并与appKey中的哈希进行比较。
如果两者都是SOME_DOMAIN_HASH_TOKEN,则该域名有效。