【问题标题】:Is an open TCP Port in C# secure?C# 中的开放 TCP 端口是否安全?
【发布时间】:2020-03-15 02:56:21
【问题描述】:

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

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

【问题讨论】:

  • 我猜你说的是服务器端,但如果你可以编辑你的帖子来澄清这一点,那就太好了。
  • 您可以采取一些预防措施来拒绝您知道有效的客户以外的客户。在应用层,您可以应用 IP 限制(检查远程 IP 并根据您在配置中保留的 IP 地址白名单进行验证)、客户端证书等。
  • 网络层还有一些其他的措施。防火墙可以阻止除明确允许通过的连接之外的所有连接,或者您的应用程序运行的服务器只能通过租用线路等访问。但默认情况下,当您开始侦听端口时,没有限制谁将连接到它。

标签: c# security tcp network-programming tcpclient


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2021-01-04
    • 1970-01-01
    • 2011-09-05
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 2014-02-09
    • 2011-03-04
    相关资源
    最近更新 更多