c# - 如何选择安全传输协议(protocol)

标签 c# linux sftp

我正在帮助设计一个需要在服务器上安全地传输和存储文件的应用程序。该应用程序是用 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/

相关文章:

linux - 什么是虚拟内存?

linux - 如何在 .htaccess 中进行 IP 规范化?

linux - 如何在我的虚拟环境中启用多核?

php - Stream_context_set_params 不适用于 ssh2.sftp 包装器

java - 如何使用java将文件从sftp复制到亚马逊s3

c# - 在不同时区的特定时间安排电子邮件

c# - ASP.NET MVC 2 : What does the C# View look like that edits nested Entities?

ssh - 在 Pycharm 中配置 SFTP

c# - 类型转换的性能

c# - 加速 LINQ 插入