我正在编写一个使用REST后端(JSON)访问数据库的SPA(Angular)。添加基于OAUTH的基于令牌的身份验证系统来处理请求的登录和授权非常容易。
现在关注的是如何检测有人编写自己的访问我的REST服务器的应用程序?我想要做的是采用一个使用条款,如果您使用我的SPA,服务器访问是免费的,但如果用户正在编写他们自己的应用程序则收取费用。
对API进行逆向工程肯定不会很困难。由于用户可以访问所有SPA代码,因此我无法想出一种方法,您无法编写可以访问服务器的替代SPA,而且无法区分。
有关如何执行此操作的任何指示?
答案 0 :(得分:1)
CORS标头会阻止其他域上的某些人访问您的服务。只需确保正确设置它们,不要向世界开放它们。
但这并不妨碍某人通过您的服务进行代理。这更难阻止。你可以从一些ip地址中寻找最重要的活动。
OAuth2也可以提供帮助。这将使其他人更难以假装他们的浏览器。这也很有效,因为您会看到来自不同用户(可能)的大量活动都来自相同的IP地址或范围。
最好的建议是创建您的服务,以便其他人消费它并不重要。也许你可以找到一种方法来完全相反并完全打开它。开放式api已经取得了很多成功(事实上,他们可以获得更多成功)。您是否有特定原因不允许用户方便地访问您服务中的数据?