La differenza fra «non lo vede» e «non può»
In un'applicazione con più tipi di utente — clienti, operatori, amministratori — è naturale mostrare a ciascuno solo i comandi che gli servono. Il problema nasce quando questo è tutto ciò che separa un utente da una funzione riservata. L'interfaccia è ciò che l'utente vede, e ciò che vede può ispezionarlo e modificarlo. Se la protezione di una funzione da amministratore è «non le ho messo il pulsante», allora la protezione vive nel posto sbagliato: nelle mani dell'utente.
Cosa può succedere davvero
| Cosa raggiunge l'utente | Conseguenza |
|---|---|
| Una schermata di sola lettura riservata | Vede dati che non gli spettano: già una violazione |
| La modifica del proprio ruolo | Si promuove ad amministratore da solo |
| La gestione degli altri utenti | Vede, cambia o cancella account non suoi |
| L'esportazione dei dati | Scarica l'intero archivio dei clienti |
| Le impostazioni di pagamento o i prezzi | Modifica ciò che genera fatturato |
La gravità dipende da cosa la funzione permette di fare, non dal fatto che sia «solo» raggiungibile. Una funzione di esportazione raggiunta da chi non deve è una fuga di dati completa.
Come si verifica, e cosa dire a chi corregge
- 01
Serve un account senza privilegi
Un utente normale di prova, uno di quelli che non dovrebbero vedere le funzioni di amministrazione.
- 02
Individuate l'indirizzo di una funzione riservata
Da un account amministratore di prova, guardate quale indirizzo o quale richiesta corrisponde a una funzione riservata.
- 03
Rifate la richiesta dall'account normale
Nei panni dell'utente senza privilegi, provate a raggiungere quella stessa funzione. Se risponde ed esegue, il difetto c'è; se rifiuta (403), il controllo funziona.