我正在做的一个项目遇到了问题。我有一个Vue客户端做API调用我的后端是写在。net Core 3.1。这两个应用程序部署在不同的服务器上。
现在的问题是,我的后端服务器不允许我做API调用直接从浏览器。所以我必须在客户端服务器上做一些"重定向"来访问我的API。
例如:
如果我调用backend_server/api/values我得到一个错误(防火墙)。
我想我应该做第二个API之类的,但我不确定如何处理这个问题。有人有这方面的经验吗?欢迎任何帮助!
亲切的问候
这里可以有多个选项
-
删除防火墙规则-这将允许你的API受到浏览器的攻击。如果防火墙不是由你管理的,你不能这样做
-
在防火墙中添加IP或端口例外规则-您可以在防火墙上允许特定的端口或IP,而不是在服务器上禁用整个入站规则。如果你对防火墙有控制
-
创建代理API -另一种方法是,您可以创建一个中间件API来转发您的请求并充当代理。这将满足性能、资源、时间和安全性方面的要求。我不建议这样做,但在。net Core
中很容易实现。 -
指定CORS策略-如果你的Vue.js和API来自相同的来源(IP),你可以在服务器上配置CORS,这将限制访问来自相同来源的API。这意味着只有www.google.com可以访问GoogleAPI。这将保护API不受其他来源的影响
-
隧道通过VPN -如果安全是一个问题,使用VPN服务隧道您的API请求。这是不可能的,每个客户端使用您的web服务。
最好的方法是在服务器上为您的应用程序打开一个特定的规则。在两者之间编写代理会有很多缺点,尽管可以实现。