C# 中的开放 TCP 端口安全吗?

Is an open TCP Port in C# secure?

抱歉,这是一个菜鸟问题,但我不明白端口是如何工作的。 我认为当我通过服务器上的 TcpListener 在 C# 中打开一个 tcp 端口时,任何人都可以连接到它。但是,我只希望我的应用程序客户端连接到该端口并发送我预定义的数据包。任何人都可以连接到端口并发送可能损害我的计算机的数据吗?或者是否有可能发送随机数据,然后被我的数据包处理程序错误地解释?

我希望我能清楚地表达我的问题。提前致谢

保护端口通常是操作系统或网络基础设施的一项功能(可以像软件防火墙一样简单)。您可以使用 iptables 之类的东西来仅允许来自白名单 IP 地址的传入连接。

如果要通过软件实现,服务器端和客户端可以使用对称加密。只有知道密钥的客户端才能发送有意义的消息。可以安全地丢弃所有其他消息。