我正在帮助设计一个需要在服务器上安全地传输和存储文件的应用程序。该应用程序是用 C# 编写的,但服务器是基于 Linux 的。我应该使用什么协议(protocol)来传输和存储这些最大 2 GB 的文件?
我读过一些 sftp 和 ssh 的内容。这些有什么好处吗?
最佳答案
如果您想要使用 .NET 以最少的组件轻松、安全地传输大文件,那么您通常会选择 FTPES,也称为通过显式 SSL 的 FTP,有时称为“FTPS”或“FTP-ES”。这是唯一支持纯 .NET 方法且无需第三方插件的版本。
通过 SFTP 或 FTP SSH ,与 FTPES 不同,您必须在您和您的客户端之间手动处理 key 交换。您还需要一个第三方库来实现这一点,因为 .NET 没有内置的 SFTP 功能。
如果你想编写一个客户端来使用 FTPES,你所要做的就是使用 FtpWebRequest 并设置 EnableSSL to true 。
要避免什么:
不要通过 Implicit SSL 使用 FTP 。它已被弃用 已经有很多年了,应该被认为已经过时了。
不要只使用 PGP 加密 文件,然后通过普通的旧 FTP 传输它们。使用普通的老式 FTP, 所有用户名和密码均以明文形式发送,这将 很容易让攻击者至少拦截您的加密 PGP 文件。
关于c# - 如何选择安全传输协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13790073/