Supporto volontario e collaborativo per Joomla!® in italiano

Invalid token: analisi e soluzione del problema

Valutazione attuale: 5 / 5

Stella attivaStella attivaStella attivaStella attivaStella attiva
 
informazioni utili

Durante la fase di login alle aree riservate di un sito realizzato in Joomla ci si può imbattere nel seguente messaggio di errore: "Invalid Token - operazione non valida".

In questo articolo analizzerò il problema e suggerirò alcune soluzioni. A differenza di altre soluzioni che possono essere proposte, quelle suggerite non comportano modifiche al codice sorgente di Joomla per non compromettere la sicurezza del CMS.



Il termine token, letteralmente, significa: segno, pegno, simbolo, garanzia, gettone. Esistono varie tipologie di token, ma in ambito Joomla abbiamo a che fare con un token di sicurezza di tipo software. Per coloro i quali volessero approfondire un minimo l'argomento rimando alla relativa pagina di Wikipedia.

A cosa serve il token in Joomla?

In Joomla viene inserito un token di sicurezza in tutti i form per proteggere il sistema dagli attacchi Cross Site Request Forgery (CSRF).

Un attacco di tipo Cross Site Request Forgery (CSRF) avviene quando un attaccante riesce a far eseguire una richiesta su un altro sito vulnerabile mentre si è collegati alle aree riservate di quest'ultimo. L'analisi di un attacco Cross Site Request Forgery chiarisce bene la dinamica e la pericolosità di una tale possibilità:

  1. L'utente Paperino si collega all'area riservata del sito www.nome-dominio.com attraverso il relativo form di autenticazione;
  2. Il server autentica l'utente Paperino e risponde inviando un cookie di autenticazione;
  3. Restando collegato all'area riservata di www.nome-dominio.com, l'utente Paperino, visitando un altro sito web o anche aprendo un link in una e-mail, va a finire su www.sito-malevolo.com che gli fa eseguire una richiesta su www.nome-dominio.com utilizzando il cookie di autenticazione;
  4. Il sito www.nome-dominio.com ritenendo valida e affidabile la richiesta la esegue in base ai privilegi di accesso che ha l'utente Paperino.

La difesa da un simile attacco è appunto l'utilizzo di un token di verifica della richiesta. La procedura a questo punto diventa la seguente:

  1. L'utente Paperino si collega all'area riservata del sito www.nome-dominio.com attraverso il relativo form di autenticazione;
  2. Il server autentica l'utente Paperino e risponde inviando un cookie di autenticazione e un token di verifica rappresentato da una stringa generata casualmente che viene inserita in un campo nascosto del form;
  3. Qualsiasi richiesta inviata a www.nome-dominio.com deve contenere sia il cookie di autenticazione che il token di verifica della richiesta per essere eseguita.

L'utilizzo del token di verifica in Joomla garantisce un buon livello di protezione in quanto l'attaccante, a questo punto, oltre a dover conoscere una URL di richiesta valida deve anche conoscere la stringa contenuta nel token di verifica che è generata casualmente ed è diversa per ogni sessione e per ogni utente.

Il rovescio della medaglia di questa tecnica di protezione è che in alcuni casi può generare dei falsi positivi per cui anche utenti legittimi e autorizzati si ritrovano davanti il famigerato messaggio di errore: "Invalid Token - operazione non valida".

Di seguito elenco tre esempi di falso positivo:

  • Un utente accede alla pagina di amministrazione, e dopo il login, viene visualizzato il messaggio "Invalid Token".
  • Un utente ha una scheda aperta con la pagina di login dalla sera precedente. L'utente tenta il login il giorno dopo e visualizza il messaggio "Invalid Token".
  • Un utente clicca su un link promozionale all'interno di una e-mail che lo rimanda ad un form. L'utente compila il form sul sito e visualizza il messaggio "Invalid Token".

Replicare l'errore

Il modo migliore e più semplice per replicare l'errore è il seguente:

  1. Aprire una pagina di Login
  2. Aprire una nuova scheda del browser e collegarsi nuovamente alla stessa pagina di Login ed effettuare l'accesso
  3. Ritornare sulla prima scheda ed effettuare l'accesso. Vi apparirà il messaggio "Invalid Token".

Fix 1 # Reindirizzare il sottodominio

A meno che non abbiate necessità di utilizzare i sottodomini, assicuratevi che il sito sia accessibile soltanto da "un" dominio.

Per impostazione predefinita, la maggior parte dei fornitori di hosting fanno in modo che si possa accedere ad un sito utilizzando sia un indirizzo www che un indirizzo non www. Ad esempio http://www.joomla.it e http://joomla.it sono tecnicamente due URL diverse che potrebbero reindirizzare a due siti diversi. E' necessario accertarsi che la URL www reindirizzi sulla rispettiva URL non www e viceversa.

Questo fix permette di risolvere la maggior parte dei messaggi di errore "Invalid token" quando si tenta l'accesso all'area amministrativa di Joomla.

Fix # 2: Aumentare la durata della sessione

La durata della sessione determina per quanto tempo un utente rimane connesso anche se è inattivo. Anche in questo caso ci troviamo di fronte ad una funzione di sicurezza.

La durata della sessione di default in Joomla è di 15 minuti. Se un utente si collega e per più di 15 minuti non compie nessuna attività sul sito allora in automatico viene disconnesso dal sistema.

Ad esempio: un utente sta compilando un form e viene interrotto. Dopo 20 minuti riprende la compilazione ed invia il form. A questo punto riceverà il messaggio "Invalid Token". Il motivo è che il suo token è scaduto e la sessione è stata chiusa automaticamente da Joomla.

Quando si va ad aumentare la durata della sessione bisogna prendere in considerazione due aspetti:

  • Che tipologia di dati sensibili sono presenti sul sito;
  • Da dove si collega la maggior parte degli utenti? Quanti utenti si collegano da computer condivisi? (Ad esempio: computer di una biblioteca, un ufficio, etc).

L'aumento della durata della sessione si tradurrà in un minor numero di messaggi di errore "Invalid token", ma bisogna considerare che tempi di apertura della sessione troppo lunghi possono rappresentare dei pericoli per la sicurezza del sistema e dei dati in esso contenuti.

Fix 3: Messaggio comprensibile

Il messaggio "Invalid Token" è incomprensibile e frustrante. La maggior parte degli utenti non sa di cosa si tratta e che cosa significhi.

E' possibile intercettare tale messaggio utilizzando il plugin Invalid Token Interceptor. Una volta scaricato e installato il plugin:

  1. Cliccare sulla voce di menu Estensioni e poi sulla sottovoce Gestione plugin;
  2. Individuare il plugin "Invalid Token Interceptor" e cliccare su di esso;
  3. Impostare lo stato su Abilitato e aggiungere un messaggio personalizzato che andrà a sostituire il messaggio "Invalid token". Ad esempio: "Spiacente, c'è stato un errore. Si prega di riprovare";
  4. Salvare e Chiudere.

Ora provate a generare il messaggio di errore come abbiamo visto nella sezione precedente "Replicare l'errore". Se tutto è stato impostato a dovere dovrebbe apparire la pagina 404 con il vostro messaggio di errore personalizzato ed inoltre il sito risulterà navigabile.

Fix 4: Contattare lo sviluppatore

Se il messaggio "Invalid Token" appare durante l'uso di una estensione allora è il caso di contattare lo sviluppatore dell'estensione chiedendogli di verificare e/o fare in modo che i relativi form prevedano l'aggiunta del token di protezione. È possibile indirizzare lo sviluppatore alla relativa documentazione Joomla.

Conclusione

Il messaggio "Invalid Token", come abbiamo avuto modo di vedere, fa parte del sistema di sicurezza e protezione di Joomla per cui non può essere rimosso senza pregiudicare la stabilità e la sicurezza dell'intero sistema. Di conseguenza si può solo tentare di mitigare e rendere più amichevole la sua presenza.

Articolo tratto da: Solving the Invalid Token Error in Joomla



commentaCommenta questa iniziativa sul forum


Ultima versione di Joomla!®

downloadVer. 3.8.1 Stabile Italiana
Data di rilascio: 04 Ottobre 2017
(leggi la notizia Demo online

Le migliori estensioni gratuite

Un elenco aggiornato con i link a più di 100 estensioni fra componenti, moduli e plugin gratuiti per Joomla! 3

Manuale in italiano

Manuale in italianoPer conoscere meglio Joomla!, le sue caratteristiche ed il metodo di utilizzo leggi il manuale tradotto in italiano.

Molto utili anche le risposte alle domande più frequenti: FAQ

Sicurezza del proprio sito Joomla!Leggi anche: Nozioni sulla sicurezza del proprio sito

Autori di articoli recenti

Invia un articolo!Scrivi un articolo su Joomla.it e ricevi i ricavi dalle pubblicità di Google Adsense!
Segui queste istruzioni, condividi e collabora con la community. L'elenco degli autori attivi sul sito.

Libri consigliati

Torna su

Joomla.it sui Social Network

JoomlaDay Italia

JoomlaDay

Newsletter

Inserisci qui la tua e.mail: