在我公司,我们想使用Javascript框架(Vue / React / Angular)。目前,我们正在比较所有框架,以了解哪种框架最适合我们的需求。
我们想要做的是以下事情:
后端API (C#)-> 框架(Vue / React / Angular)
为了保护我们的数据,我们需要一定的安全性,以便并非每个人都可以请求我们的API(需要一些破解)。我们的目标是您只能通过客户端(网站)访问API。
但是问题是,如果没有登录我们应该怎么做?
我们调查了:
将上述方法结合使用可能会奏效,但这是我们能做到的最好的方法吗?
答案 0 :(得分:1)
很抱歉告诉您,绝对没有牢不可破的方法来限制仅从特定客户端访问API。最后,您的Javascript客户端向API发出HTTP请求,并且可以在测试工具(甚至直接在Chrome!中)或另一个自定义客户端中轻松捕获,研究和重新创建这些请求。
完全可以在用户控制下运行的Javascript客户端也可以由他们修改。缩小和混淆会使这变得更难,但这不会阻止任何有足够动力的人。
从本质上讲,请不要考虑任何仅涉及客户端的解决方案,因为它不受信任。
然后仅离开服务器端。您已经提出的想法可以提供帮助,但是要问的第一个问题(您未提供答案)是我们要防范哪些具体风险?
例如,如果服务器过载,那么节流可以解决大多数问题,您实际上不需要关心您自己的客户端是否真正发出了请求。如果还有其他事情,也许可以使用其他解决方案,但是这些信息对于找到正确的解决方案至关重要。
如果您不确定尝试控制客户端是没有意义的,请查看此项目,该项目仅用于抓取网站和/或提供不同的(更强大的)API来使用它们:https://weboob.org/ < / p>
如果您担心会滥用该API,请使用以下2种(不良)缓解方法:
但是,除非您还准备随时更改其结构,否则这两种方法都不能阻止网站从最终呈现的DOM中进行抓取。
答案 1 :(得分:0)
您可以做什么: https://en.wikipedia.org/wiki/Obfuscation_(software) https://obfuscator.io/ https://blog.jscrambler.com/how-to-protect-your-vue-js-application-with-jscrambler/
很难获得这些请求,但仍然-每个人都可以调用您的API服务器,这将需要更多时间。