Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wcf 保护我的REST服务,我将在客户端使用APIkey_Wcf_Api_Rest_Wcf Web Api_Api Key - Fatal编程技术网

Wcf 保护我的REST服务,我将在客户端使用APIkey

Wcf 保护我的REST服务,我将在客户端使用APIkey,wcf,api,rest,wcf-web-api,api-key,Wcf,Api,Rest,Wcf Web Api,Api Key,假设我已经顺利创建了REST服务,并且返回了json结果 我还为我的用户实现了API密钥,以便为我的服务进行通信 然后A公司开始使用我的服务,我给了他们一个API密钥 例如,假设我的服务url如下所示: {钥匙来了} 主要问题是,我将拥有自己的网站,该网站还需要调用自己的REST web服务。如果我在调用自己的REST服务时从我的网站传递API密钥,什么会阻止某人使用例如Firebug,请查看我在我的web应用程序中使用的API密钥并使用相同的API密钥?Google在例如Google Maps

假设我已经顺利创建了REST服务,并且返回了json结果

我还为我的用户实现了API密钥,以便为我的服务进行通信

然后A公司开始使用我的服务,我给了他们一个API密钥

例如,假设我的服务url如下所示:

{钥匙来了}


主要问题是,我将拥有自己的网站,该网站还需要调用自己的REST web服务。如果我在调用自己的REST服务时从我的网站传递API密钥,什么会阻止某人使用例如Firebug,请查看我在我的web应用程序中使用的API密钥并使用相同的API密钥?

Google在例如Google Maps中使用的方法是将API链接到URL。因此,您只能从请求密钥时指定的URL在应用程序中使用提供的密钥。这在web应用程序中特别有用,您可以在服务器上获取引用者url。

这听起来很好,但如果我需要从移动设备公开对web服务的访问,该怎么办?@djna引用者当然可能被欺骗,但当您公开在网站上使用的公共API时,用户将通过其标准webbrowser访问API。如果普通用户必须欺骗推荐人,那么大多数用户将无法访问该网站。如果用户可以直接访问API,那么即使站点受HTTPS保护,他们也可以始终看到您的API密钥。因此,如果您想隐藏密钥,我认为您应该从后端系统访问该服务。如果你想保护后端流量不受网络嗅探器的影响,那么你可以使用HTTPS。我不建议普通用户必须欺骗,而不是我们无法保护未经授权且可能是恶意的应用程序使用被盗的API密钥和欺骗引用的URL。这里的问题来自应用程序提供商和服务提供商之间的分离,服务提供商(Radenko)希望只接受授权应用程序提供商的请求。正如您所说,如果应用程序提供商有一个受控制的服务器端代理,并且与他们的应用程序本身具有相同的身份验证/授权,那么这是最容易做到的。