Quando un utente normale arriva alla schermata di amministrazione

Il pulsante non c'è, quindi sembra impossibile. Ma se l'indirizzo della schermata di amministrazione funziona lo stesso, il pulsante nascosto non ha protetto niente.

7 minTitolari, responsabili di un'applicazione con più ruoli

Cosa portare a casa

Risposta breve

Molte applicazioni nascondono le funzioni riservate agli amministratori togliendo il pulsante dal menù degli utenti normali. Ma nascondere un comando non è impedirlo: se la funzione risponde comunque a chi ne conosce l'indirizzo o ne rifà la richiesta, un utente qualsiasi può usarla. È un difetto di autorizzazione, censito dalle guide OWASP per i test (WSTG-ATHZ), e nasce dal confondere «non lo vede» con «non può».

Nascondere un pulsante è estetica, non sicurezza: la funzione resta raggiungibile da chi ne conosce l'indirizzo.

Il controllo dei permessi deve stare sul server, che l'utente non controlla, non nell'interfaccia, che l'utente vede e può aggirare.

Il caso peggiore non è vedere una schermata in più: è poter eseguire azioni da amministratore — cambiare prezzi, cancellare, esportare tutto.

Si verifica provando a raggiungere una funzione riservata da un account senza privilegi.

Data Hub

CONSOO

Torna alle guide

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

Dalla schermata di troppo al danno vero
Cosa raggiunge l'utenteConseguenza
Una schermata di sola lettura riservataVede dati che non gli spettano: già una violazione
La modifica del proprio ruoloSi promuove ad amministratore da solo
La gestione degli altri utentiVede, cambia o cancella account non suoi
L'esportazione dei datiScarica l'intero archivio dei clienti
Le impostazioni di pagamento o i prezziModifica 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

  1. 01

    Serve un account senza privilegi

    Un utente normale di prova, uno di quelli che non dovrebbero vedere le funzioni di amministrazione.

  2. 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.

  3. 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.

Risorse collegate utili

Domande frequenti

Ma se il pulsante non c'è, come fa l'utente a trovare l'indirizzo?

In diversi modi: lo intravede negli strumenti per sviluppatori del browser, lo trova in una vecchia versione dell'app, lo indovina perché segue uno schema prevedibile, o lo riceve da chi prima aveva più privilegi. Progettare la sicurezza sperando che un indirizzo resti segreto è fragile: gli indirizzi trapelano, i controlli sul server no.

Ho ruoli diversi nella mia app: come faccio a sapere se sono protetti bene?

La regola pratica è provare ogni funzione importante da ogni ruolo che non dovrebbe averla. È un lavoro sistematico, perché le combinazioni crescono in fretta con il numero di ruoli e di funzioni: è una delle parti in cui un test di sicurezza dà più valore, perché le prova tutte senza dimenticarne.

È lo stesso difetto del cliente che vede i dati di un altro?

Sono parenti stretti: entrambi sono controllo degli accessi rotto, la voce numero uno della classifica OWASP. La differenza è che lì l'utente arriva a un dato di un altro utente dello stesso livello, qui arriva a una funzione di un livello superiore. La causa è la stessa: un controllo mancante sul server.

La vostra app ha più tipi di utente? Vale la pena verificare che i permessi siano controllati dove conta. Lo guardiamo insieme in una consulenza gratuita.

CONSOO trasforma idee su software, AI e integrazioni in un percorso tecnico chiaro per PMI.

  • 30 minuti, online
  • Nessun impegno
  • Analisi del tuo caso reale
  • Risposta entro 24 ore