Se installi un plugin “Last Login” e improvvisamente la schermata Utenti di WordPress appare organizzata, quella precisione ti sta ingannando. Le date sembrano autorevoli. Puoi ordinarle. Sembrano fatti certi. Non lo sono. WordPress non ha mai memorizzato una data di ultimo accesso nativa, e ogni valore in quella colonna è un prodotto di una memoria selettiva.

La storia che non è mai esistita

WordPress conserva gli account in una semplice tabella utenti. Memorizza nomi, email, hash delle password e date di registrazione. Manca vistosamente qualsiasi campo che registri quando qualcuno si è autenticato l'ultima volta. È sempre stato così.

Quando installi un plugin per colmare questa lacuna, esso si aggancia al processo di login e scrive un timestamp nei metadati dell'utente. Questo è l'intero meccanismo. Non va a recuperare dati dai log del server né ricostruisce le sessioni precedenti. Inizia semplicemente a monitorare dal momento in cui lo attivi.

Immagina un sito che è operativo da cinque anni. Centinaia di editor, iscritti e collaboratori hanno effettuato l'accesso durante questo periodo. Installi un plugin di tracciamento un martedì pomeriggio. Mercoledì mattina, un editor senior effettua l'accesso. Il plugin registra l'ora e la data. Ma il tuo account admin non mostra nulla, perché non hai effettuato l'accesso dall'installazione. Anche un vecchio account di un freelancer del 2021 non mostra nulla. La colonna fa apparire come se nessuno dei due avesse mai toccato il sito. In realtà, la registrazione non aveva semplicemente un passato. Tratta l'assenza di dati come prova di assenza, il che è un'ipotesi pericolosa quando si gestiscono gli accessi.

Tre modi in cui la colonna ti inganna

Una volta che il plugin è in funzione, l'illusione passa dalla mancanza di cronologia a una reportistica del tempo presente corrotta. Ci sono tre trappole specifiche.

Traccia l'autenticazione, non l'attività

Quando un utente seleziona “Ricordami” nella schermata di login di WordPress, il browser riceve un cookie di autenticazione che può rimanere valido fino a quattordici giorni. Durante questa finestra temporale, l'utente può aprire la dashboard, pubblicare post, moderare commenti e aggiornare le impostazioni senza dover mai digitare nuovamente la password. La sua sessione è viva e attiva.

La maggior parte dei plugin di last-login, tuttavia, ascolta l'azione wp_login. Quell'azione viene attivata solo quando le credenziali vengono inviate tramite il modulo, non quando una sessione esistente si aggiorna. Quindi, il tuo editor potrebbe effettuare l'accesso un lunedì mattina, mantenere attiva la sessione del browser e lavorare nell'area admin ogni giorno per due settimane consecutive. La colonna indicherebbe ancora un accesso di quattordici giorni fa. Una revisione di sicurezza basata su quel timestamp contrassegnerebbe l'account come dormiente. Non lo è affatto. Stai guardando quando è stata digitata una password, non quando un essere umano è stato l'ultima volta dentro casa tua.

Nasconde gli account dormienti durante gli audit

La maggior parte dei plugin implementa la colonna ordinabile unendo la tabella users alla tabella usermeta. Strutturalmente, questo ha senso. Praticamente, crea un bug di visibilità.

Se un utente non si è mai autenticato da quando hai attivato il plugin, non esiste semplicemente alcuna riga in usermeta per quella chiave. Quando ordini l'elenco degli utenti per “Last Login” per trovare i tuoi account più vecchi, la query sottostante spesso esclude gli utenti che non dispongono dei metadati. Questi scompaiono completamente dalla visualizzazione ordinata.

Esegui un audit di pulizia. Ordini in modo decrescente e vedi quaranta utenti con date via via più vecchie. Identifichi con sicurezza un gruppo da disabilitare. Ma non hai mai visto i dieci account dei collaboratori che sono rimasti silenti per otto mesi perché non hanno mai attivato il tracker. Quegli account non compaiono nell'elenco ordinato, quindi non compaiono nelle tue conclusioni. Il tuo audit cancella letteralmente le proprie scoperte. Sui siti di membership, sulle piattaforme di e-learning o sulle reti multisite, questo è particolarmente preoccupante perché gli account dormienti sono spesso i primi bersagli degli attaccanti.

I dati esistono solo quando sono inutili

C'è una sottile ironia in tutto questo. Il core di WordPress sa qualcosa sulle sessioni degli utenti. Quando qualcuno effettua l'accesso, il sistema genera dei token di sessione e li memorizza nei metadati dell'utente. Un amministratore può visualizzare le sessioni attive e terminarle. Ma questa informazione è strettamente in tempo reale. Nel momento in cui l'utente clicca su logout, o la sessione scade automaticamente, WordPress elimina il token. La registrazione evapora.

Puoi vedere chi è online in questo momento. Non puoi vedere facilmente chi era online ieri alle dieci del mattino. L'architettura è stata costruita per la gestione delle sessioni in tempo reale, non per la cronologia