保护REST接口免受反向工程访问

时间:2017-12-11 15:56:40

标签: rest oauth oauth-2.0 single-page-application

我正在编写一个使用REST后端(JSON)访问数据库的SPA(Angular)。添加基于OAUTH的基于令牌的身份验证系统来处理请求的登录和授权非常容易。

现在关注的是如何检测有人编写自己的访问我的REST服务器的应用程序?我想要做的是采用一个使用条款,如果您使用我的SPA,服务器访问是免费的,但如果用户正在编写他们自己的应用程序则收取费用。

对API进行逆向工程肯定不会很困难。由于用户可以访问所有SPA代码,因此我无法想出一种方法,您无法编写可以访问服务器的替代SPA,而且无法区分。

有关如何执行此操作的任何指示?

1 个答案:

答案 0 :(得分:1)

CORS标头会阻止其他域上的某些人访问您的服务。只需确保正确设置它们,不要向世界开放它们。

但这并不妨碍某人通过您的服务进行代理。这更难阻止。你可以从一些ip地址中寻找最重要的活动。

OAuth2也可以提供帮助。这将使其他人更难以假装他们的浏览器。这也很有效,因为您会看到来自不同用户(可能)的大量活动都来自相同的IP地址或范围。

最好的建议是创建您的服务,以便其他人消费它并不重要。也许你可以找到一种方法来完全相反并完全打开它。开放式api已经取得了很多成功(事实上,他们可以获得更多成功)。您是否有特定原因不允许用户方便地访问您服务中的数据?