ngrok 是一个安全的工具吗?我正在阅读一个教程,该教程建议使用我对需要连接到我的端点的外部服务做出的 ngrok 测试 API 响应。
5 回答
2.0 版没有可用的源代码,考虑到它是 2014 年作为开源项目开始的。我怀疑有任何代码会打开从云到我的本地主机的隧道。非常可怕的东西,尤其是没有源代码!
我在这里找到了很好的评价,但信息很空洞:
http://www.scamadviser.com/is-ngrok.com-a-fake-site.html
对我来说最重要的是
https://developer.atlassian.com/blog/2015/05/secure-localhost-tunnels-with-ngrok/
Atlassian 的人强烈推荐它。
我想我会使用它。
它打开了一条通往您的开发机器的隧道,该隧道部分受隐蔽(难以猜测的子域)保护,并且可以通过要求密码来进一步保护。但是您仍然对 ngrok 本身敞开心扉,而且公司完全不透明(没有地址,没有员工,没有公司名称,没有 LinkedIn 存在;我所能找到的只是它有 1-10 名员工并且是私人的;不是甚至确定它位于哪个国家/地区)。最重要的是,代码不是开源的。没有理由认为它们不合法,但没有太多可用于建立信任的信息。
您可以通过加密流量来使用 ngrok 和其他更安全的本地隧道服务。有关更多信息,请参阅https://security.stackexchange.com/questions/177280/end-to-end-encryption-for-localtunnel-ngrok-setup/177357#177357。
如果有人担心损害他们的开发环境,您可以使用 Docker。有很多 ngrok/docker 项目,但这是我选择的一个:https ://github.com/gtriggiano/ngrok-tunnel
对于 macOS,使用“TARGET_HOST=docker.for.mac.localhost”
他们现在提供一项服务,您只需在本地运行 ssh,无需在您的机器上运行他们的任何代码。
你运行类似ssh -R 80:localhost:8501 tunnel.us.ngrok.com http
. 这将连接到他们的主机之一并将他们收到的连接转发回您的机器和您在 localhost:8501 上运行的服务。
这对我来说似乎是安全的,唯一的问题是您不知道他们收集了哪些信息以及谁在连接到您的公开服务。他们打印所有连接,但这是他们的二进制文件,有人可能会在你不注意的情况下听到。您可以检查自己的连接,但无法确定连接的是谁。