我将实现一个网络协议(具体来说,SFTP),我想知道是否有什么通用的经验规则可遵循?
目前,这似乎是一项巨大的任务,我不知道从哪里开始。
我在找:
尽量使其适用于一般的网络协议。
谢谢!
发布于 2010-09-21 12:10:42
如果可能的话,我当然建议使用经过良好测试的库。特别是对于SFTP的SSH方面,实现中的错误可能导致安全漏洞。
尽管如此,你似乎是一个有经验的人,你可能会发现没有一个图书馆(SharpSSH等)。如果合适,您应该考虑将您的网络实现分离到它自己的库中,并开放它的来源有两个原因:
鉴于所有这些,其他的指导方针将类似于其他发展,但可能在安全性和测试方面更加严格。确保运行静态分析,并对故障用例进行单元测试。
另外:使用,但不要信任为您提供的OSI模型的较低层。如果有一个方案破坏了您的代码,您可以打赌网络最终会找到它。
希望这能有所帮助。
发布于 2010-09-17 09:27:31
我建议查看SharpSSH库,它包括对SFTP的支持,并且是在BSD风格的许可下发布的,因此您可能可以重用源代码,或者至少可以使用该项目的一些想法。
这里还有一些其他的答案(我几个月前就看到了),其中提到了SFTP支持方面的一些问题,但不确定这些问题是否仍然相关,而且无论是哪种方式,它至少都是一个很好的起点。
https://stackoverflow.com/questions/3733968
复制相似问题