Web services 验证Web服务的客户端软件

Web services 验证Web服务的客户端软件,web-services,security,rest,Web Services,Security,Rest,我正试图思考如何验证web服务仅由授权的客户端软件访问 现在,我的意思不是说我只希望web服务向授权用户开放,我只希望我的web服务向我认为可以接受的客户开放 让我们看一个用例。我有一个我提供的web服务,以及连接到该web服务的软件。在这种情况下,服务是基于REST的。我不希望其他人创建客户机并访问我的web服务,并从我的服务中获利,因为此服务是一组非常特殊的数据,我只需要对已批准的客户进行保护 来自其他地方的一些不正确建议是为了确保用户拥有一个帐户。然而,这只会阻止未经授权的用户,不会阻止某

我正试图思考如何验证web服务仅由授权的客户端软件访问

现在,我的意思不是说我只希望web服务向授权用户开放,我只希望我的web服务向我认为可以接受的客户开放

让我们看一个用例。我有一个我提供的web服务,以及连接到该web服务的软件。在这种情况下,服务是基于REST的。我不希望其他人创建客户机并访问我的web服务,并从我的服务中获利,因为此服务是一组非常特殊的数据,我只需要对已批准的客户进行保护

来自其他地方的一些不正确建议是为了确保用户拥有一个帐户。然而,这只会阻止未经授权的用户,不会阻止某人创建客户端,并允许那些真正的用户使用其他人的软件访问我的web服务

另一个建议是在软件中包含某些身份详细信息或客户端证书,但对某人来说,反向工程并获取这些详细信息然后复制请求太容易了


我不确定我想做的事情是否可能,但我希望有人能证明我错了。

如果你放弃你的软件,没有什么能完全阻止创建第三方软件,类似于模仿你现有的客户端软件。通过混淆客户二进制代码的某些部分或虚拟化这些部分(例如VMProtect工具),您可以使这种“克隆器”的任务更加复杂,但正如所说的,这会使工作更加困难,但并非完全不可能。您可能需要重新考虑有关客户端软件的业务策略

实践表明,如果您的服务器端服务很受欢迎,那么无论您做什么,都会出现克隆。这仅仅是因为你不能用你的客户端软件满足所有用户,如果出现临界数量的不满意用户,他们将开始创建更好的客户端软件。在这种情况下,您最好提供一个免费的客户端SDK和一个社区:这些步骤将使第三方客户端软件的创建更加可控