我在工作中有这个网络服务。对于该 Web 服务,我们部门开发了一个客户端来使用该 Web 服务。
我们要防止的是,他们开发任何其他客户端来使用它。
是否有任何算法和实践可以改进我们的客户端和 Web 服务通信来验证消费客户端是我们的应用程序?
我有一个想法,我们可以开发一个关于时间(5 秒宽限期)的加密算法,该算法必须与服务器上计算的时间相匹配。
但我想确定的是,没有最佳实践......或者如果它仍然是一个好主意......
(对不起我的英语)
我在工作中有这个网络服务。对于该 Web 服务,我们部门开发了一个客户端来使用该 Web 服务。
我们要防止的是,他们开发任何其他客户端来使用它。
是否有任何算法和实践可以改进我们的客户端和 Web 服务通信来验证消费客户端是我们的应用程序?
我有一个想法,我们可以开发一个关于时间(5 秒宽限期)的加密算法,该算法必须与服务器上计算的时间相匹配。
但我想确定的是,没有最佳实践......或者如果它仍然是一个好主意......
(对不起我的英语)
您要查找的内容称为“身份验证”。
我认为 Web 服务(例如,基于 SOAP 或 REST)的部分重点是发布一个接口,让您的服务可能被各种客户端实现使用(互操作性是 Web 服务的动机之一)。
如果您想锁定您的服务以供您的客户使用,将其作为“Web 服务”的唯一好处可能是您实现它的工具和库。您可能要考虑这是否值得(确实有可能)。
如果您分发您的客户端应用程序,那么可能确保请求来自该客户端的任何保护机制都必须嵌入该客户端。因此,您嵌入的任何秘密机制都可能只会在一定程度上被混淆,但更高级的用户可以破解。
您需要应用程序身份验证。对于基于 Web 的应用程序和服务,请尝试研究 2-legged OAuth。在 OAuth 中,您为每个访问您的服务的客户端应用程序提供一个 id 和一个秘密,并且每条消息都经过签名以提高安全性。