假设我已经顺利地创建了我的 REST 服务并且我正在返回 json 结果。
我还为我的用户实现了 API 密钥,以便为我的服务进行通信。
然后 A 公司开始使用我的服务,我给了他们一个 API 密钥。
然后他们创建了一个HttpHandler
for 桥(我不确定这里的术语是什么),以免暴露 API 密钥(我也不确定这是正确的方法)。
例如,假设我的服务 url 如下:
www.myservice.com/service?apikey={key_comes_here}
A公司正在从客户端使用此服务,如下所示:
www.companyA.com/services/service1.ashx
然后他们开始在客户端使用它。
A公司在这里保护了api密钥。没关系。
但是这里还有另一个问题。其他人仍然可以获取www.companyA.com/services/service1.ashx
url 并开始使用我的服务。
有什么方法可以阻止其他人这样做?
作为记录,我使用 WCF Web API 来创建我的 REST 服务。
更新 :
公司 A 的 HttpHandler(第二个链接)仅查看主机标头以查看它是否来自www.companyA.com
。但我猜很容易伪造。
更新 2:
是否有任何已知的方法可以为 url 实现 Token。例如,假设www.companyA.com/services/service1.ashx
它将携带一个表示 TOKEN 的查询字符串参数,以便 HttpHandler 检查请求是否正确。
但我想这里有很多事情要考虑。