如何确保只允许我的 iphone 应用程序使用我的应用程序引擎应用程序来发送和接收数据?我可能必须使用密钥,但我不知道如何。我可以只使用 post/get 通过 https 发送我的静态密钥吗?还是我需要使用一些动态密钥算法?
任何帮助,将不胜感激!比约恩
如何确保只允许我的 iphone 应用程序使用我的应用程序引擎应用程序来发送和接收数据?我可能必须使用密钥,但我不知道如何。我可以只使用 post/get 通过 https 发送我的静态密钥吗?还是我需要使用一些动态密钥算法?
任何帮助,将不胜感激!比约恩
假设你认为你可以让 iPhone 应用程序的秘密不被发现,你需要的是一个HMAC。对于您发出的每个请求,将请求的文本传递到 HMAC-SHA1 之类的函数中,使用您的密钥作为密钥,并将结果添加到您发出的请求中。当服务器收到请求时,执行相同的操作,并验证 HMAC 是否匹配。
我不完全确定你想要完成什么。
但是,在 iPhone 应用程序中共享密钥或 API 密钥通常是个坏主意。
您正在谈论您自己的 AppEngine 应用程序。为什么不在 AppEngine 端创建一个简单的(基于 JSON 的)Web 服务来与您的应用对话?我怀疑是否有必要从您的 iPhone 应用程序中直接使用您的 AppEngine 凭据。
如果这不能回答您的问题,请提供更多详细信息。
在您的 Web 服务上使用 SSL 证书,因为传递给它的任何数据都是加密的。
加密的 SSL 连接要求客户端和服务器之间发送的所有信息都由发送软件加密并由接收软件解密,从而保护私人信息不被 Internet 拦截。
此外,在每次调用服务时,都会发送一个您已定义的 guid 以及您的数据。在 Web 服务执行任何操作之前,必须验证此 guid。要进一步锁定,您可以创建一个生成 guid 的服务,该 guid 需要为任何后续调用服务传递回来。
还要确保您不允许任何人在服务器上看到您的 wsdl,否则他们可以猜测您的参数。
RapidSSL 的 SSL 证书每年花费17 美元,因此无需担心费用。