FTP é a sigla da expressão inglesa File Transfer Protocol, e designa um protocolo de transferência de ficheiros entre computadores em redes TCP/IP. É um processo mais generalista de transferir ficheiros através de dois sites da Internet. Os ficheiros armazenados num servidor FTP podem ser acedidos através de um cliente FTP, tal como um navegador da internet, um programa de FTP, ou numa interface de linha de comando.
Um servidor FTP pode ser configurado para permitir diferentes tipos de acesso. Por exemplo, uma configuração “FTP anónima” permite que qualquer pessoa possa conectar-se ao servidor. No entanto, os utilizadores anónimos só podem ser autorizados a ver certos diretórios e podem não ser capazes de fazer upload de ficheiros. Se o acesso anónimo FTP está desativado, os utilizadores são obrigados a efetuar login, de modo a conseguirem visualizar e transferir ficheiros.
O protocolo FTP padrão não é criptografado , o que significa que é vulnerável a pacotes sniffers e outros tipos de ataques de espionagem. Portanto, os protocolos FTPS e SFTP foram desenvolvidos para fornecerem conexões FTP seguras. FTPS (FTP com segurança SSL) fornece criptografia SSL para todas as comunicações FTP. SFTP (SSH File Transfer Protocol) é uma versão segura de FTP que usa SSH para criptografar todas as transferências de dados.
Para conectar-se a um servidor FTP, primeiro é necessário digitar o nome do servidor e o número da porta. O nome do servidor muitas vezes começa com ftp, tal como ftp.exemplo.com. O número da porta padrão para FTP é a 21, enquanto SFTP usa a porta 22 (SSH). Se conectar-se via FTPS, pode ser obrigado a digitar um número de porta personalizado, mas o mais comum é a 990. Para aceder a um servidor SFTP ou FTPS, também precisará digitar um nome de utilizador e senha.
A especificação FTP original foi escrita por Abhay Bhushan e publicada como RFC 114 em 16 de Abril de 1971. Este foi mais tarde substituído por RFC 765 (Junho de 1980). A especificação atual é RFC 959 (outubro de 1985). RFC significa Request for Comments. Em seguida foi usado o Internet Procotol versão 6 (IPv6), (RFC 2428). Além disso, porque ele foi definida sem muita preocupação com a segurança, ele foi estendido muitas vezes para melhorar a segurança: por exemplo, versões que criptografam através de uma conexão TLS (FTPS) ou que trabalham com Secure File Transfer Protocol (SFTP).
As primeiras aplicações de cliente de FTP usavam a linha de comandos do DOS com a sua sintaxe e comandos padronizados. Desde então, muitos clientes GUI (graphical user interface) foram desenvolvidos no âmbito dos sistemas operativos, tornando mais fácil para o utilizador fazer o upload e o download de ficheiros.
Existem vários tipos de FTP:
- Um site FTP é um web site onde os utilizadores podem facilmente fazer upload ou download de ficheiros específicos.
- FTP por correio permite que os utilizadores sem acesso à Internet possam aceder e copiar ficheiros ao usar um FTP anónimo através do envio de uma mensagem de e-mail para ftpmail@decwrl.dec.com e colocar a palavra help no corpo do texto.
- FTP Explorer é um cliente FTP com base no gestor de ficheiros do Windows 95 (Windows 95 Explorer).
- Um servidor FTP é um computador dedicado que oferece um serviço FTP. Este convida hackers e necessita de hardware ou software de segurança, como por exemplo, utilizar nomes de utilizador, senhas e controlo de acesso aos ficheiros.
- Um cliente de FTP é uma aplicação de computador que acede a um servidor FTP. Enquanto isso, os utilizadores devem bloquear as tentativas de conexão FTP de entrada ao usarem o modo passivo e devem verificar a existência de vírus em todos os arquivos transferidos.
Embora um monte de transferência de ficheiros agora seja tratada utilizando HTTP, o FTP ainda é comummente usado para transferir ficheiros nos bastidores para outras aplicações. Por exemplo, escondido atrás das interfaces de utilizador de um sistema bancário, de um serviço que ajuda a construir um site, tais como o Wix ou Squarespace ou outros serviços. Ele também é usado, através de navegadores da Web, para transferir novas aplicações.