端口转发是否会带来任何安全问题?

Does port forwarding pose any security issues?

好的,总的来说,我是端口转发和 Web 开发的新手。我想建立一个只有几个朋友和我偶尔访问的 Flask 网站,我知道要将它托管在我自己的计算机上并让他们访问它,我必须转发端口,但是端口转发是否构成其余部分和安全问题我的电脑,如果是这样,我该如何解决这个问题?

Good Super User Thread on this topic

据我所知,端口转发确实主要对您的路由器构成安全风险,因为黑客可以使用转发的端口访问您的路由器。它还取决于您的特定路由器和计算机,因为有些路由器有防火墙,有些则没有。还要看端口转发给多少人,端口开放多长时间等。如果只有几个朋友我说是安全的,但是用常识评估你个人的风险承受能力。

通过端口直接将您的计算机暴露在互联网上并没有什么内在的危险;我们一直使用防火墙打开和关闭端口。危险在于端口转发到的应用程序,在您的情况下,是您本地的 Flask 应用程序。如果您的应用程序中存在打开攻击面的缺陷(从字面上选择流氓文件上传、SQL 注入、远程代码执行等),那么理论上的攻击者可能会“走在前门”并在您的本地机器上做任何他们喜欢的事情。链中的弱 link 不是开放端口,它是您应用程序中的一个可利用的缺陷。

虽然可以在您的本地计算机上托管可访问 Internet 的应用程序(我们中的许多人一直这样做是为了使用 ngrok 等工具进行测试),但不建议这样做。寻找云提供商并以每月 5 美元或更低的价格在虚拟服务器上托管您的应用程序。使用现代部署和托管方法并不能自动防止任何类型的攻击或破坏,但它们肯定可以更轻松地缓解事件——销毁容器并启动新容器。如果您不喜欢擦除本地计算机并在每次怀疑有违规行为时重新开始的想法,那么在线托管非常物有所值。