我正在开发一个在 Google App Engine 上运行的网络应用程序。它有一些 HTTP GET 方法来请求数据。我不希望任何随机的网络请求能够从服务器接收数据。只有我的网络应用程序(即来自我的网站的请求)加上我开发的任何移动或桌面客户端应该能够从服务器请求数据。这是怎么做到的?注意我不是在这里谈论用户名/密码授权。我在问如何确保发出请求的客户端应用程序已获得授权。否则,任何人都可以制作他们的客户端(例如,C# 控制台应用程序)并开始使用我的数据。我认为这个问题类似于这个问题:如何验证客户端应用程序以信任从它发送的消息
问问题
111 次
3 回答
0
您可以使用 3scale。它提供对您的 GAE 应用程序的请求的授权、统计和控制
https://code.google.com/p/appspotimage/wiki/APICreationArticle
于 2013-08-21T10:19:37.317 回答
0
简短的回答是,你不能。
很长的答案是,你可以让黑客很难。通常这是通过在应用程序中嵌入密钥、对其进行混淆以及混淆获取密钥的代码来实现的。这并不会让某人无法找到钥匙,只是更难。
微软的 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 回答