我使用this MS link在一台PC上用C#组装了一台TCP服务器。我保持端口打开,等待各种PLC客户端建立连接。PLC处于移动的自动机器人中,因此它们可以进出Wi-Fi范围。我使用此设置来获取运行变量(电池%等)。并将它们显示在供系统管理员监视的UI中。
我将路由器设置为端口转发,以便数据从各种客户端到达服务器PC。我使用的是西门子S7-1200PLC,我不认为它们支持像PC这样的高端安全功能。
所以我的问题是,如果管理员PC正在运行一项Windows服务,该服务不断地监视打开的端口,那么是否存在安全风险?如果有风险,能否请您解释并支持链接或资源,以帮助我修补这些漏洞(在C#中)?
这对我来说似乎是安全的,因为如果PC关闭,端口也会关闭。如果PC处于打开状态,则端口已打开,但已绑定到监控该端口的应用程序。如果端口接收到它认为无效的数据,它只会转储该数据。我在软件和PC安全方面的知识不是很精通,但这一点略有不同,因为它是一台连接能力较弱的硬件的单台PC。
发布于 2016-09-23 15:54:45
打开端口会将您暴露给连接到该端口并提供错误信息的任何人,暴露消息解析和套接字处理实现(缓冲区溢出或脚本注入)上的漏洞,或者只是使您的应用程序被流量淹没。最后一个几乎是不可能防范的,总会有人在一定程度上拒绝你。
这些都不是意想不到的风险,但您需要意识到它们,并确保正确清理传入流量以拒绝格式错误的请求,并以某种方式验证和丢弃不是来自您期望的机器人的连接。
如果您确实执行了身份验证步骤,则需要在使用SSL或SSH之类的东西进行身份验证之前加密通道。否则,其他人可能会监视您的流量,观察身份验证事务,然后复制它。
祝你好运!安全是一个很深的兔子洞,但却是一项非常有价值的技能!
https://stackoverflow.com/questions/38371020
复制相似问题