首页 > 解决方案 > 安全后端 API 到前端框架

问题描述

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

我们要做的是:

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

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

但问题是我们应该如何在没有登录的情况下做到这一点?

我们调查了:

以上方法的组合可以工作,但这是我们能做的最好的吗?

标签: angularreactjsapivue.jsframeworks

解决方案


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

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

本质上,忘记任何只涉及客户端的解决方案,因为它是不可信的。

这样就只剩下服务器端了。您已经给出的想法可以提供帮助,但要问的第一个问题(您没有提供谁的答案)是我们试图防范哪些特定风险?

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

附录

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

如果您非常担心 API 会被滥用,这里有 2 种(不好的)缓解方法:

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

但是,这些都不能阻止网站从最终渲染的 DOM 中抓取,除非您也随时准备更改其结构。


推荐阅读