【发布时间】:2012-12-09 17:59:10
【问题描述】:
我正在帮助设计一个需要在服务器上安全地传输和存储文件的应用程序。该应用程序是用 C# 编写的,但服务器是基于 Linux 的。我应该使用什么协议来传输和存储这些文件,最大为 2 GB?
我已经阅读了一些关于 sftp 和 ssh 的内容。这些有用吗?
【问题讨论】:
我正在帮助设计一个需要在服务器上安全地传输和存储文件的应用程序。该应用程序是用 C# 编写的,但服务器是基于 Linux 的。我应该使用什么协议来传输和存储这些文件,最大为 2 GB?
我已经阅读了一些关于 sftp 和 ssh 的内容。这些有用吗?
【问题讨论】:
如果您想要使用 .NET 以最少的组件轻松安全地传输 BIG 文件,您通常会希望使用 FTPES,也称为 通过显式 SSL 的 FTP,有时也称为“FTPS”或“FTP-ES”。这是唯一受纯 .NET 方法支持且无需第三方插件的版本。
使用 SFTP 或通过SSH 进行的 FTP,与 FTPES 不同,您将不得不在您和您的客户之间手动交换密钥。您还需要第三方库来实现它,因为 .NET 没有 SFTP 的内置功能。
如果你想编写一个使用 FTPES 的客户端,你所要做的就是使用 FtpWebRequest 并设置EnableSSL to true。
要避免什么:
不要通过 Implicit SSL 使用 FTP。它已被弃用 在这一点上很多年,应该被认为已经过时了。
不要只是 PGP 加密 文件,然后通过普通的旧 FTP 传输它们。使用普通的旧 FTP, 所有用户名和密码都以明文形式发送,这将 轻松让攻击者至少拦截您加密的 PGP 文件。
【讨论】: