0

我正在开发一个在 Google App Engine 上运行的网络应用程序。它有一些 HTTP GET 方法来请求数据。我不希望任何随机的网络请求能够从服务器接收数据。只有我的网络应用程序(即来自我的网站的请求)加上我开发的任何移动或桌面客户端应该能够从服务器请求数据。这是怎么做到的?注意我不是在这里谈论用户名/密码授权。我在问如何确保发出请求的客户端应用程序已获得授权。否则,任何人都可以制作他们的客户端(例如,C# 控制台应用程序)并开始使用我的数据。我认为这个问题类似于这个问题:如何验证客户端应用程序以信任从它发送的消息

4

3 回答 3

0

您可以使用 3scale。它提供对您的 GAE 应用程序的请求的授权、统计和控制

https://code.google.com/p/appspotimage/wiki/APICreationArticle

于 2013-08-21T10:19:37.317 回答
0

简短的回答是,你不能。

https://security.stackexchange.com/questions/826/how-can-i-securely-authenticate-the-client-application-sending-me-data

很长的答案是,你可以让黑客很难。通常这是通过在应用程序中嵌入密钥、对其进行混淆以及混淆获取密钥的代码来实现的。这并不会让某人无法找到钥匙,只是更难。

微软的 Silverlight DRM 是最强大的消费者系统之一,您可能想研究它是如何工作的:http ://www.iis.net/learn/media/iis-media-services/content-protection-in-silverlight

于 2013-08-20T21:07:37.460 回答
0

通过您的客户端加密请求。在服务器级别解密。如果解密成功并且请求格式正确,则其被授权。

否则,它是未经授权的客户。

捕获?

在解决您的加密方法后,有人将能够制作未经授权的客户端。这很可能是在反编译您的程序并艰难地通过混淆代码之后,使其更难/耗时,但它仍然是可能的。

于 2013-08-21T17:43:21.423 回答