什么使用,而不是FTP

我总是从运行基于Windows的Web服务器的人那里得到这个问题。 FTP虽然普遍存在,但存在许多缺陷缺陷,并不是所有这些都可以简单地通过在现有FTP协议之上使用SSL / TLS来解决。

那么是否有一个Windows用户可以使用的协议,configuration或其他解决scheme来代替通用公共文件传输? 典型的要求是简单直观的:

  • 它需要是一个相对不熟练的pipe理员可以设置和pipe理的东西
  • 访问此协议也不需要隐式授予对其他资源的访问权限
  • 它需要通过互联网来保证安全

以下是一些不符合问题要求的解决scheme,但无论如何都是build议的。 他们包括在这里敦促你避免build议他们作为答案

  • Cygwin和其他SSH解决scheme,除了为新手设置复杂之外,还隐式授予对访问者的命令行访问权限,允许他不仅仅上传和下载文件(即执行任意代码)
  • RDP虽然具有文件共享function,但也授予访问者桌面访问权限,允许他不仅仅上传和下载文件
  • FTPS,FTPES和其他基于FTP的解决scheme。 encryption不是FTP的唯一问题。 否则,我们不会问这个问题。
  • Windows文件共享,这是不安全的通过互联网使用,并且由于这个原因通常被ISP阻止
  • DAV,除非它可以非常容易地设置和保护(通常不是这种情况)

请注意,这是非常明确而非故意不是 购物的问题 。 我们并不是问哪个热门产品最能满足洗衣清单的要求。 相反,我们正在寻找解决常见问题的可能scheme。

我认为你的禁止清单所强调的关键问题不是文件传输,而是相关pipe理员的培训质量(或预期必须从此开始)。 如果一个组织不能在内部或通过外包的IT基础设施来设置这样的事情,那么我将会非常担心客户或投资者(这比我想要的更加激进/傲慢,但我不敢想象更好的方式来说吧…)

为了更直接的解决你的观点:

Cygwin + SSH

这可以肯定是与Cygwin设置,但有商业select,可能会更容易pipe理。 SCP / SFTP(通过SSH)不一定意味着shell访问 – 在所有的实现中,我知道这可以从用户中删除,或者不可能摆在首位。 在Linux下,通常可以使用受限制的shell,例如rssh ,只需要将所有的用户都设置为它们的shell,那么Cygwin的端口集合也可能存在(如果不是,则可以在本地编译)。 另一个select,如果你不相信一个限制的shell就足够了,让SSH loginc都经过一个完全没有用处的用户可以运行的网关盒子,并且在用户的本地networking上安装其他存储区域(虽然这将是更麻烦设置)。

RDP虽然具有文件共享function,但也授予访问者桌面访问权限,允许他不仅仅上传和下载文件

我同意RDP / RDS是仅仅用于文件共享的错误解决scheme,尽pipe您可以用非常有限的权限安全地lockingRDP用户。

FTPS,FTPES和其他基于FTP的解决scheme。 encryption不是FTP的唯一问题。

同意。

Windows文件共享,这是不安全的通过互联网使用,并且由于这个原因通常被ISP阻止

如果您控制连接的客户端操作系统,并且总是通过质量良好的链接进行连接,则只有通过某种forms的VPN解决scheme才能访问Windows文件共享。 虽然如果你看到把SSHpipe理作为一个主要的基础设施pipe理问题,那么VPN的想法也是可怕的。

DAV,除非它可以非常容易地设置和保护(通常不是这种情况)

我自己也没有和DAV一起工作过,所以在这里不能评论任何权威。