È uscito il Corso Java Completo
Torna al blog

Cos'è l'FTP e come si usa (e perché usare SFTP)

Cos'è l'FTP, come si collega a un server, la differenza tra FTP, FTPS e SFTP e perché oggi l'FTP semplice non andrebbe più usato per nessun motivo.

Edoardo Midali

Edoardo Midali

Developer · Content Creator

6 min di lettura

Se hai mai messo online un sito su un hosting tradizionale, hai incontrato l'FTP: un programma con due riquadri affiancati, i tuoi file da una parte e il server dall'altra. È una tecnologia vecchia di cinquant'anni, ancora diffusissima e con un problema di sicurezza serio che in molti ignorano. In questo articolo ti spiego come si usa e perché la versione che dovresti usare è un'altra.

Cos'è l'FTP

L'FTP (File Transfer Protocol) è un protocollo per trasferire file tra il tuo computer e un server remoto. Ti permette di caricare, scaricare, rinominare ed eliminare file su uno spazio web come se fosse una cartella del tuo computer.

È nato nei primi anni Settanta, prima del web stesso. Questo spiega sia la sua diffusione sia il suo limite principale.

Il problema di sicurezza

Va detto subito, perché è la cosa più importante dell'articolo.

L'FTP classico trasmette tutto in chiaro: nome utente, password e contenuto dei file viaggiano non cifrati. Chiunque sia in condizione di osservare il traffico — su una rete Wi-Fi pubblica, per esempio — può leggere le tue credenziali così come le hai digitate.

Non è un rischio teorico. Le credenziali FTP rubate sono uno dei modi più comuni con cui i siti vengono compromessi, perché chi ha accesso FTP può modificare qualunque file, inclusi quelli che eseguono codice.

Le versioni sicure:

ProtocolloCifraturaPorta tipica
FTPNessuna21
FTPSFTP con TLS aggiunto21 / 990
SFTPCifrato, basato su SSH22

Usa SFTP. È il più diffuso, il più semplice da configurare e cifra tutto per costruzione. Quasi ogni hosting lo supporta: spesso basta cambiare protocollo e porta nel programma che già usi.

Se il tuo hosting offre solo FTP in chiaro, è un segnale su cui riflettere.

Come ci si collega

Servono quattro informazioni, che trovi nel pannello del tuo hosting:

  • Host — l'indirizzo del server (ftp.tuosito.it o un indirizzo IP)
  • Utente e password
  • Porta — 22 per SFTP, 21 per FTP

I programmi più usati sono client grafici con la classica interfaccia a due riquadri: a sinistra il tuo computer, a destra il server, e si trascinano i file da una parte all'altra. FileZilla, WinSCP, Cyberduck sono i più diffusi. Molti editor di codice hanno l'FTP integrato.

Dove finiscono i file del sito: in una cartella che di solito si chiama public_html, www o httpdocs. È quella la radice del tuo sito — un file caricato lì dentro diventa raggiungibile dal web.

Attenzione a non caricare i file fuori da quella cartella: è l'errore che fa dire "ho caricato tutto ma il sito non si vede".

Cosa fare e cosa non fare

Va bene usarlo per:

  • Caricare un sito statico su un hosting tradizionale
  • Recuperare file da un sito esistente
  • Sistemare al volo un file quando il sito è rotto e non hai alternative
  • Scaricare i contenuti caricati per un backup

Non è il caso di usarlo per:

Aggiornare un sito in produzione a mano. È la pratica che genera più incidenti: si carica un file a metà, si sovrascrive la versione sbagliata, si dimentica un pezzo. E soprattutto non c'è modo di tornare indietro.

Come metodo di deploy. Oggi esistono strumenti molto migliori: un deploy da Git è tracciabile, ripetibile e reversibile. Con l'FTP, se rompi qualcosa non sai nemmeno cosa hai cambiato.

Per gestire i contenuti. I contenuti stanno nel database, non nei file. Caricare un'immagine via FTP su WordPress non la rende visibile nella libreria multimediale.

Gli errori più comuni

Connessione rifiutata. Nove volte su dieci è la porta sbagliata: 22 per SFTP, 21 per FTP. Oppure il firewall del tuo lato blocca la connessione.

Modalità passiva. Se ti colleghi ma l'elenco dei file resta vuoto, prova a passare alla modalità passiva nelle impostazioni. È un problema noto legato al modo in cui l'FTP apre le connessioni, e la modalità passiva lo risolve quasi sempre.

Permessi sbagliati dopo il caricamento. Se il sito dà errore 403 dopo aver caricato i file, controlla i permessi: tipicamente 644 per i file e 755 per le cartelle. Non impostare 777 per "risolvere": significa dare a chiunque il permesso di scrivere, ed è una vulnerabilità.

File nascosti invisibili. File come .htaccess iniziano con un punto e molti client li nascondono di default. Va attivata l'opzione per mostrarli.

Trasferimenti interrotti. Su molti file piccoli l'FTP è lento. Meglio comprimere in un archivio, caricare quello e decomprimere sul server se possibile.

Caratteri accentati nei nomi. Fonte di problemi ricorrenti: meglio nomi di file senza accenti e senza spazi.

Le alternative moderne

Vale la pena sapere che, per un progetto nuovo, l'FTP spesso non serve affatto:

Deploy da Git. Fai una modifica, la invii al repository, il sito si aggiorna da solo. È lo standard sulle piattaforme moderne, e ogni cambiamento è tracciato e reversibile — vedi usare Git e GitHub.

Interfacce a riga di comando dei servizi di hosting, che caricano solo ciò che è cambiato.

SSH con rsync, che sincronizza le differenze invece di ricaricare tutto: molto più veloce.

L'FTP resta pertinente soprattutto sugli hosting condivisi tradizionali, dove spesso è l'unico accesso disponibile — ed è il motivo per cui vale ancora la pena saperlo usare.

In sintesi

L'FTP trasferisce file tra il tuo computer e un server, con la classica interfaccia a due riquadri. Serve host, utente, password e porta, e i file del sito vanno nella cartella radice (public_html o simili).

La cosa da ricordare più di ogni altra: usa SFTP, non FTP. Il protocollo classico manda password e file in chiaro, ed è un modo concreto e frequente di farsi compromettere un sito.

Va bene per caricare un sito statico, recuperare file o sistemare un'emergenza. Non è il modo giusto di aggiornare un sito in produzione: per quello servono strumenti che permettano di tornare indietro.

E se stai partendo con un progetto nuovo, valuta se ti serve davvero: sulle piattaforme moderne il deploy da Git ha reso l'FTP superfluo nella maggior parte dei casi.