【发布时间】:2011-10-21 23:13:18
【问题描述】:
假设我已经顺利地创建了我的 REST 服务并且我正在返回 json 结果。
我还为我的用户实现了 API 密钥,以便为我的服务进行通信。
然后 A 公司开始使用我的服务,我给了他们一个 API 密钥。
然后他们为桥创建了一个HttpHandler(我不确定这里的术语是什么)为了不暴露 API 密钥(我也不确定它是否正确方式)。
例如,假设我的服务网址如下:
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 检查请求是否正确。
但我想这里有很多事情要考虑。
【问题讨论】:
标签: javascript wcf api rest wcf-web-api