我有一个 ProFTPd 服务器,用户可以使用网站中动态生成的链接访问文件。链接 URL 遵循以下模式ftp://用户名:密码@主机/文件路径
使用新的 iOS 11 和新的 macOS,用户无法访问 FTP 服务器。他们收到“无权打开”错误。
令人惊讶的是,在 Mac 上,将鼠标悬停在链接上并使用上下文菜单->“下载附件”将下载该文件。
任何运行以前操作系统版本的 iPhone 或 Mac 都可以正常下载文件。
查看 FTP 日志确认凭据不是由 Safari 发送的。
使用任何其他浏览器(Chrome、Firefox)也同样有效。
强迫用户使用外部应用程序不是一个选择。
任何想法?
编辑:我已经 tpcdump 了连接,并且看到 Safari 将请求用户和密码更改为:用户->匿名密码->[电子邮件保护]
因此 FTP 服务器拒绝匿名用户的连接。
答案1
考虑切换到匿名 FTP、HTTPS 或 SFTP。
Apple 一直在努力确保凭证和其他可能的私人信息永远不会以明文形式通过网络。例如,他们从 High Sierra (10.13) 开始从 macOS 中删除了命令行 FTP 和 Telnet 客户端,因为这些协议不安全。
匿名 FTP 可能有效,因为它不发送凭证。HTTPS 或 SFTP 可能有效,因为它们是安全的。