【发布时间】:2020-10-08 15:00:20
【问题描述】:
我在 Heroku 上有一个使用付费测功机的应用,因此使用了他们的 ACM Automated Certificate Management
这应该确保客户端和应用程序之间的所有流量都是加密的。
但是,我的应用调用了一个单独的私有 API。我正在等待一个单独的自签名证书,以便能够连接到这个 API(所以这应该与 Heroku 证书分开)。作为临时解决方法..与此 API 的所有连接当前都与
一起使用process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
我已经了解了这样做的危险以及如何使所有节点不加密。我的问题是,当客户端连接到 Heroku 实例以获取应用程序的其他不涉及 API 标注的部分时,该应用程序是否仍然安全。或者无论 Heroku 证书如何,设置该 env var 是否真的会使整个应用程序不安全?
谢谢!
【问题讨论】:
-
嗯。与所有事物的安全性一样,它不是一个是/否,而是一个梯度。拥有
NODE_TLS_REJECT_UNAUTHORIZED=0不会立即使您的烤面包机爆炸或您的应用程序“不安全”。它只是让它容易受到中间人攻击。你有所谓的“群体免疫”;在数百万个应用程序中,您的应用程序不太可能成为黑客攻击的目标。我们在安全社区中喜欢您想要正确地做这件事,但要明白,在您获得有效证书的情况下让该设置保持几天不会像我们所知的那样使社会崩溃。
标签: javascript node.js security ssl heroku