试图更多地了解NodeJS和安全性的复杂性。我正在通过通过net.createConnection()
设置的TCP-to-TCP代理通过原始TCP套接字进行通信。
在我的操场上,我有以下设置:我的自定义NodeJS Telnet客户端> 我的NodeJS TCP到TCP服务器代理> Telnet客户端请求的服务器
我发现的是,通过Telnet客户端,我可以向代理服务器发出localhost:3306
的请求,并且我的代理服务器会将我连接到在代理服务器上运行的DB。当然不好。看起来足够容易吧?阻止localhost
,127.0.0.1
等。但是在我看来,我永远无法知道主机名指向的是内部地址。例如, lndo.site 是一个公共域,但它公开指向 127.0.0.1 。这意味着,如果这是一个真实世界的应用程序,则我必须确定可以安全转发到哪些主机。这有可能吗?
将代理放在没有其他TCP服务运行的服务器上是唯一的“安全”方法吗?可以阻止环回吗?