过去我曾使用 TLS 上的 FTP 让非技术的朋友和家人远程访问我服务器上的重要文件。
我刚刚发现他们不能再使用 Firefox 来实现这一点,并且 Firefox 的错误/功能表明 FTP 即将被“明确弃用”,并且 TLS 上的 FTP 被标记为 WONTFIX(Mozilla链接1 链接2但另请参阅链接3)。我也无法让 Win8.1 中的 IE11 连接(大多数家庭使用的是 8.1 而不是 10)。
我在 LAN 上提供 SMB,但没有在 WAN 上提供,如果可以避免的话,我不想在本地开始运行完整的 Web 服务器。(因为拥有更多不必要的功能也意味着更广泛的攻击面:如果不需要,最好避免)。
在这种情况下,对于一直使用 FTPS(或一直使用 FTP 并想要添加 TLS 传输)的用户来说,替代期望是什么?
我假设一个不太懂技术的客户端用户希望它“只在默认操作系统或他们常用的浏览器中工作”,而不是为了添加该功能而下载特定的 FTP/客户端软件。他们需要的功能很简单“输入 URI -> 验证身份 -> 获取文件系统根列表 -> 浏览和搜索目录以及上传/下载文件”。
当然,一些不错的 FTP 客户端会支持这一点,并且会存在很多年,但关键是 ftp(s):// URI 在浏览器中已经使用了几十年,但现在显然不会了(或者不会可靠地使用)。那么我应该怎么做,才能给他们他们需要/期望的东西呢?
答案1
那么我应该怎么做才能满足他们的需要/期望呢?
在我看来,期望需要改变。这是 2018 年,不是 1992 年。
在 90 年代初期,当 Web 浏览器还是一个新生事物时,浏览器必须计划支持除 HTTP 之外的其他功能,因为:
- 那时网络还未脱离学术界的掌控。因此,网上的所有内容都是静态文本和图像文档,而 HTML 当时就是这么做的。HTTP 本身实际上是一种文件传输机制。
- 由于 HTTP 是新协议,所以当时 HTTP 并不是网络上最常用的协议。HTTP 之前还有其他协议 - 因此您可以使用支持 Gopher 的浏览器、FTP、与电子邮件客户端集成等。
因此,在浏览器中集成 FTP 支持是有意义的。
当然,不久之后,CGI 就使 HTTP 成为一种原始的交互协议,然后是 Javascript、XHR/AJAX、Webkit、websockets、Webkit、WebRTC 以及浏览器除了显示和格式化静态文档之外支持的所有其他东西。
所以现在:HTTP(S)不再是像 FTP 这样的简单文件传输机制但实际上是一种应用交付机制——静态文档只是一种可能的应用。浏览器的视角不是与 FTP 客户端属于同一类别,并且不是如今,支持除 HTTP(S) 之外的其他协议是非常合理的。
我在 LAN 上提供 SMB,但没有在 WAN 上提供,如果可以避免的话,我不想在本地开始运行完整的 Web 服务器。(因为拥有更多不必要的功能也意味着更广泛的攻击面:如果不需要,最好避免)。
在这种情况下,对于一直使用 FTPS(或一直使用 FTP 并想要添加 TLS 传输)的用户来说,替代期望是什么?
如今,非技术人员正在使用 Dropbox/Google Drive/OneDrive 等云服务来移动文件,当然是以牺牲隐私为代价的。
他们需要的功能很简单,“输入 URI -> 验证 -> 获取文件系统根列表 -> 浏览和搜索目录以及上传/下载文件”。
为此,微软正在转向云模式,并正在为此目的大力推广 OneDrive。
有 WebDAV,但是您必须运行 Web 服务器,并且由于 Windows 的怪癖,WebDAV 通常很难正常工作。
想要自己动手,而不运行网络服务器?答案是 SCP。您的非技术用户只需学习使用 SCP 客户端即可。这并不难。
SCP 与 FTP 相比有许多优点,其中包括:
- 它基于历史悠久的 SSH,因此它是安全的并且默认加密。
- 使用一个端口而不是两个端口,不需要“被动模式”或防火墙解决方法。只需转发路由器上的单个端口即可。
- 您可以采用与 FTP 相同的方式管理用户。