本文概述
- FTP
- FTPS
- SFTP
- 差异性
但是, 它们是什么, 它们之间有什么区别?了解3个最臭名昭著的(和类似名称的)传输协议之间的区别是什么。
FTP FTP用于在网络上的计算机之间传输文件。你可以使用FTP在计算机帐户之间交换文件, 在帐户和台式计算机之间传输文件或访问在线软件档案。但是请记住, 许多FTP站点已被大量使用, 并且在连接之前需要进行多次尝试。
使用FTP, 命令和数据通道均未加密。通过这些通道发送的任何数据都可以被拦截和读取。利用此特定漏洞的一种常见利用是使用ARP中毒和数据包嗅探器的中间人攻击。
文章图片
优点
- 允许你传输多个文件以及目录。
- 如果连接丢失, 可以继续传输。
- 能够将项目添加到要上传/下载的” 队列” 中。
- 许多FTP客户端都可以计划传输。
- 单次传输没有大小限制(浏览器最多允许2 GB)。
- 许多客户端通过命令行具有脚本功能。
- 大多数客户端具有同步实用程序。
- 传输速度比HTTP更快。
- 用户名, 密码和文件以明文形式发送。
- 在本地计算机上很难过滤活动的FTP连接(首选被动)。
- 可以欺骗服务器以将数据发送到意外计算机上的随机端口。
- 很难编写作业脚本。
- 并非始终通过https支持TLS 1.2(请改用cURL)(根据Steve Silberberg atFitpacking)。
- 没经验的用户可以轻松完成工作(WeSwap Travel Money的Sam Williamson)。
- 不一致/无法跟踪已上传到远程系统上的内容(Capital Technology Services的John Chapin)。
最初起草FTP协议时, 安全性不是问题。从那时起, 许多事情发生了变化, 通过任何未加密的公共网络发送数据被认为是非常危险的, 在某些情况下被禁止。例如, 诸如PCI-DSS和HIPAA之类的法规包含要求通过加密保护数据传输的规定。为了解决此问题, 出现了对原始FTP(RFC 2228)的扩展, 该扩展保护使用SSL加密在网络上传输的FTP数据。
文章图片
优点
- 广为人知和使用。
- 交流可以被人类阅读和理解。
- 提供服务器到服务器文件传输的服务。
- SSL / TLS具有良好的身份验证机制(X.509证书功能)。
- 许多Internet通信框架都内置了FTP和SSL / TLS支持。
- 没有统一的目录列表格式。
- 需要辅助数据通道, 这使得在防火墙后面很难使用。
- 没有为文件名字符集(编码)定义标准。
- 并非所有的FTP服务器都支持SSL / TLS。
- 没有获取和更改文件或目录属性的标准方法。
SFTP的缩写通常被误用于指定某种安全FTP, 人们通常将其称为FTPS。另一个(类似)错误是, SFTP被认为是某种基于SSL的FTP。实际上, SFTP是SSH文件传输协议的缩写。这不是通过SSL的FTP, 也不是通过SSH的FTP(从技术上讲也是可行的, 但很少见)。
文章图片
优点:
- 具有良好的标准背景, 可以严格定义大多数(如果不是全部)运营方面。
- 只有一个连接(不需要DATA连接)。
- 连接始终是安全的。
- 目录列表是统一的, 并且是机器可读的。
- 该协议包括权限和属性操纵, 文件锁定和更多功能的操作。
- 通讯内容是二进制的, 无法” 按原样” 记录下来以供人工阅读。
- SSH密钥更难管理和验证。
- 该标准将某些事物定义为可选的或推荐的, 这会导致来自不同供应商的不同软件标题之间的某些兼容性问题。
- 没有服务器到服务器的复制和递归目录删除操作。
- VCL和.NET框架中没有内置的SSH / SFTP支持。
【什么是FTPS,FTP,SFTP,它们之间有什么区别】
|
的FTP | FTPS | SFTP |
安全 | 命令和数据通道中的未加密信息交换。通信是人类可读的。 | 通过隐式SSL或显式SSL在命令和数据通道上进行加密。通信是人类可读的。 | FTP服务器和客户端之间的所有信息交换均通过SSH协议加密。 SFTP还可以加密会话。由于通讯采用二进制格式, 因此难以理解。 |
服务器的防火墙端口 | 允许端口21上的入站连接 | 允许端口21和/或990、989上的入站连接 | 允许端口22上的入站连接 |
客户端的防火墙端口 | 允许到服务器定义的端口21和被动端口范围的出站连接 | 允许到服务器定义的端口21和被动端口范围的出站连接 | 允许到端口22的出站连接 |
推荐阅读
- 如何在Windows中使用PuTTY在远程服务器(Linux和Ubuntu)上执行.sh脚本
- 使用readme.md文件中的Github Markdown可能不知道的提示和技巧
- 使用PHPExcel使用图表生成的Excel文件会因Symfony中的流响应而损坏-PHP
- 如何在Symfony中获取教条查询状态(信息)
- 在Symfony 3中的表单上实现Google reCAPTCHA
- 终极版/反应。实现后,combineReducers无法获得app的状态
- Android / Java,如何在某些字段中使用换行和逗号来处理csv文件()
- Google BigQuery APPROX_QUANTILES并获得真正的四分位数
- Swift didReceiveRemoteNotification - 无论app用户位于何处,都可以导航到rootviewcontroller(现在有错误信息)