安全后端API到前端框架

时间:2019-02-27 07:50:55

标签: angular reactjs api vue.js frameworks

在我公司,我们想使用Javascript框架(Vue / React / Angular)。目前,我们正在比较所有框架,以了解哪种框架最适合我们的需求。

我们想要做的是以下事情:

后端API (C#)-> 框架(Vue / React / Angular)

为了保护我们的数据,我们需要一定的安全性,以便并非每个人都可以请求我们的API(需要一些破解)。我们的目标是您只能通过客户端(网站)访问API。

但是问题是,如果没有登录我们应该怎么做?

我们调查了:

  • CORS
  • 节流
  • reCAPTCHA V3(不在中国)

将上述方法结合使用可能会奏效,但这是我们能做到的最好的方法吗?

2 个答案:

答案 0 :(得分:1)

很抱歉告诉您,绝对没有牢不可破的方法来限制仅从特定客户端访问API。最后,您的Javascript客户端向API发出HTTP请求,并且可以在测试工具(甚至直接在Chrome!中)或另一个自定义客户端中轻松捕获,研究和重新创建这些请求。

完全可以在用户控制下运行的Javascript客户端也可以由他们修改。缩小和混淆会使这变得更难,但这不会阻止任何有足够动力的人。

从本质上讲,请不要考虑任何仅涉及客户端的解决方案,因为它不受信任。

然后仅离开服务器端。您已经提出的想法可以提供帮助,但是要问的第一个问题(您未提供答案)是我们要防范哪些具体风险?

例如,如果服务器过载,那么节流可以解决大多数问题,您实际上不需要关心您自己的客户端是否真正发出了请求。如果还有其他事情,也许可以使用其他解决方案,但是这些信息对于找到正确的解决方案至关重要。

附录

如果您不确定尝试控制客户端是没有意义的,请查看此项目,该项目仅用于抓取网站和/或提供不同的(更强大的)API来使用它们:https://weboob.org/ < / p>

如果您担心会滥用该API,请使用以下2种(不良)缓解方法:

  • 不提供API!仅在服务器上呈现HTML。
  • 每天大约更改API并推出一个新的Javascript客户端来处理它。

但是,除非您还准备随时更改其结构,否则这两种方法都不能阻止网站从最终呈现的DOM中进行抓取。

答案 1 :(得分:0)

Hiding client side API calls

有关

您可以做什么: https://en.wikipedia.org/wiki/Obfuscation_(software) https://obfuscator.io/ https://blog.jscrambler.com/how-to-protect-your-vue-js-application-with-jscrambler/

很难获得这些请求,但仍然-每个人都可以调用您的API服务器,这将需要更多时间。