连接到节点 REST api 的应用程序被客户防火墙阻止

Posted

技术标签:

【中文标题】连接到节点 REST api 的应用程序被客户防火墙阻止【英文标题】:Application that connects to node REST api is being blocked by customers firewall 【发布时间】:2015-11-20 04:59:48 【问题描述】:

我和我的公司正在开发一个从我们自己的构建 API 获取数据的 Angular 应用程序。

API 使用expressnode.js 中构建,并在端口8080 上运行。

我们向中型/大型公司出售许可证。

我们的客户遇到的一个常见问题是,一旦他们尝试登录系统,就会被拒绝(被他们自己的防火墙),因为它不允许端口 8080 上的流量。这意味着我们的每个客户都必须由他们自己的 IT 部门运行才能使我们的系统正常工作。

当然,这对于新客户来说总是一个糟糕的开始。

所以我的问题是:有没有办法通过选择“更安全”的更常见端口来避免这种情况,或者我注定要在我的系统上出现这种尴尬的言论?

【问题讨论】:

【参考方案1】:

我想说你可以简单地使用端口80。它是 HTTP 最常用的端口。或者443,HTTPS 最常用的端口。它们可能是最有可能不被防火墙阻止的端口。

【讨论】:

如果我使用这些端口,已经使用端口 80 的人是否能够连接到我的系统? 我认为您不了解端口的工作原理。客户端可以连接到许多使用端口 80 的应用程序。几乎您访问的每个网站都使用端口 80。问题是,端口 80 是否已经在您的服务器上使用?您不能让两个服务器端应用程序同时监听端口 80。但如果您的服务器上只有一个 express 应用程序,那么这不是问题。 伙计们,这不仅仅是关于端口。防火墙解析整个公司流量,甚至 HTTPS(通过使用预信任证书重新签名)。因此它分析 HTTP 内部结构。例如如果这根本不是 HTTP(例如,当人们试图通过 80 或 443 的 SSH 时),这就是连接断开的原因。我有非常相似的问题,合法的 Angular2+NetCore 应用程序在许多客户的企业防火墙上自动被阻止。他们看到一个页面一次,REST api 不起作用,并且在下次访问或刷新时 - 整个网站被阻止。我在很多办公室看到过很多类似的应用程序。

以上是关于连接到节点 REST api 的应用程序被客户防火墙阻止的主要内容,如果未能解决你的问题,请参考以下文章

REST API用于连接在线REST服务器

使用 IOS、PHP、REST API、JSON 连接到数据库的 Web 服务

如何使用适用于 iOS 的 swift 3 连接到 MEAN 堆栈 REST api

Tableau 可以连接到任意 REST API 作为数据源吗?

如何通过 REST API 为连接到 Microsoft Teams 频道的机器人获取机器人 ID 和用户 ID

SonarQube 无法使用 REST API 连接到 JIRA 7