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

标签 c# linux sftp

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

相关文章:

java - 使用 Jsch 进行异步 sftp 文件传输?

c# - 在 Audit.Net 中有没有办法使用多个输出提供程序?

linux - 不能在 Linux 的 Matlab 中包含 OpenCV 函数

linux - 如何使 Linux bash 终端中的 ctrl+c 行为看起来像 OSX 终端

linux - KeeWeb 桌面安装错误

node.js - 如何使用 NodeJs 重命名 SFTP 上的文件

c# - 是否可以使用 SQL 查询搜索 DataGridView 或 DataTable

c# - 错误 : 0x1 at XX: Exception has been thrown by the target of an invocation

c# - 使用鉴别器的 Fluent NHibernate 的多级继承

delphi - 用于Delphi中FTP的WinInet包装器