我正在帮助设计一个需要在服务器上安全地传输和存储文件的应用程序。该应用程序将用 C# 编写,但服务器是基于 Linux 的。我应该使用什么协议(protocol)来传输和存储这些最大 2 GB 的文件?
我读了一点 sftp 和 ssh。这些会有什么好处吗?
最佳答案
如果您想要使用 .NET 以最少的组件轻松安全地传输大文件,您通常会希望使用 FTPES,也称为通过显式 SSL 的 FTP,有时称为“FTPS”或“FTP-ES”。这是唯一受纯 .NET 方法支持且无需第三方插件的版本。
使用 SFTP,或通过 SSH 的 FTP ,与 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/