打开networking端口的风险是什么?

如果我写一个程序来打开一个TCP端口并运行,可以有人做什么,可以说一个回声服务器? 有人可以在我的系统上访问数据吗? 或任何其他开放端口的风险?

这取决于程序编写的程度以及服务器程序运行的凭据。 例如,假设你分配了一个固定长度的缓冲区来从套接字中读取数据,然后你读入的数据量大于分配的大小,那么就有可能制作一个服务器请求,超过堆栈上的缓冲区并覆盖返回地址。 此时,黑客可以将返回地址重新指向(overrun)缓冲区,该缓冲区可能包含实际的代码。 然后,如果你的服务器程序以root / administrator的身份运行,你就让代码在这个上下文中执行。

如果您的程序易受攻击,则黑客可能会以您的程序权限在系统上执行代码。 或者也许他可以安排一个DoS攻击(你的程序会消耗所有的CPU或内存或磁盘空间,一切都将停止工作和崩溃:-))。

过去也可以在操作系统TCP / IP协议栈中发现一个漏洞,并利用它。 所以,即使你的节目是完美的,也有可能因开放的港口而陷入困境。 但是我现在还没有听说过这样的错误。