Criticisms Of FTP |
- Passwords and file contents are sent in clear text, which can be
intercepted by eavesdroppers. There are protocol enhancements that
circumvent this, for instance by using SSL or TLS.
- Multiple TCP/IP connections are used, one for the control connection,
and one for each download, upload, or directory listing. Firewalls may need
additional logic and or configuration changes to account for these
connections.
- It is hard to filter active mode FTP traffic on the client side by using
a firewall, since the client must open an arbitrary port in order to receive
the connection. This problem is largely resolved by using passive mode FTP.
- It is possible to abuse the protocol's built-in proxy features to tell a
server to send data to an arbitrary port of a third computer; see FXP.
- FTP is a high latency protocol due to the number of commands needed to
initiate a transfer.
- No integrity check on the receiver side. If a transfer is interrupted,
the receiver has no way to know if the received file is complete or not.
Some servers support extensions to calculate for example a file's MD5 sum
(e.g. using the SITE MD5 command) or CRC checksum, however even then the
client has to make explicit use of them. In the absence of such extensions,
integrity checks have to be managed externally.
- No date/timestamp attribute transfer. Uploaded files are given a new
current timestamp, unlike other file transfer protocols such as SFTP, which
allow attributes to be included. There is no way in the standard FTP
protocol to set the time-last-modified (or time-created) datestamp that most
modern filesystems preserve. There is a draft of a proposed extension that
adds new commands for this, but as of yet, most of the popular FTP servers
do not support it.
Security problems
The original FTP specification is an inherently insecure method of
transferring files because there is no method specified for transferring data in
an encrypted fashion. This means that under most network configurations, user
names, passwords, FTP commands and transferred files can be "sniffed" or viewed
by anyone on the same network using a packet sniffer. This is a problem common
to many Internet protocol specifications written prior to the creation of SSL
such as HTTP, SMTP and Telnet. The common solution to this problem is to use
either SFTP (SSH File Transfer Protocol), or FTPS (FTP over SSL), which adds SSL
or TLS encryption to FTP as specified in RFC 4217.
|