Безопасен ли открытый порт TCP в C#? - PullRequest
0 голосов
/ 14 марта 2020

Прошу прощения, это своего рода нубский вопрос, но я не понимаю, как работают порты. Я думаю, что когда я открываю tcp порт в C# через TcpListener на сервере, любой может подключиться к нему. Тем не менее, я хочу, чтобы мой клиентский приложение только подключался к порту и отправлял мои предопределенные пакеты. Может ли кто-нибудь подключиться к порту и отправить данные, которые могут повредить мой компьютер? Или возможно просто посылать случайные данные, которые затем просто неверно интерпретируются моими обработчиками пакетов?

Надеюсь, я мог четко изложить свой вопрос. Заранее спасибо

1 Ответ

1 голос
/ 14 марта 2020

Защита порта, как правило, является функцией операционной системы или сетевой инфраструктуры (может быть такой же простой, как программный брандмауэр). Вы можете использовать что-то вроде iptables, чтобы разрешить входящие соединения только с белых IP-адресов.

Если вы хотите сделать это с помощью программного обеспечения, сервер и клиент могут использовать симметричное c шифрование. Только клиенты, которые знают ключ, смогут отправлять значимые сообщения. Все остальные сообщения можно безопасно отбрасывать.

...