Sì, sono in forte disaccordo. Anche se il tuo caso d’uso specifico può sembrare abbastanza semplice, implementare una semplice sovrascrittura nell’interfaccia utente introdurrebbe un rischio di sicurezza significativo per un guadagno di comodità minimo.
L’attrito è una funzionalità di sicurezza!
Quindi, l’inconveniente di dover utilizzare la console di Rails o attivare un’impostazione a livello di sito è in realtà una funzionalità di sicurezza critica, poiché agisce come un “freno di sicurezza” e costringe un amministratore a eseguire un processo deliberato e ad alto attrito per un’operazione molto sensibile.
Modificare l’indirizzo email di un utente equivale a consegnare le chiavi del suo account, poiché il nuovo indirizzo email può essere utilizzato per attivare un reset della password, bloccando di fatto l’utente originale e dando al nuovo proprietario dell’email il controllo completo.
Alcuni vettori di attacco principali che questo attrito previene:
-
Compromissione degli account amministrativi! - Questo è il rischio più significativo. Se un attaccante ottiene l’accesso a un account amministrativo (tramite phishing, riutilizzo della password, ecc.), un semplice pulsante o un interruttore nell’interfaccia utente gli permetterebbe di prendere in modo silenzioso e facile il controllo di qualsiasi altro account utente, inclusi quelli del personale; la necessità di accedere alla shell tramite la console di Rails fornisce un forte livello di sicurezza.
-
Ingegneria sociale! - Questo apre la porta all’ingegneria sociale. Un utente malevolo potrebbe impersonare un utente legittimo e convincere un amministratore a modificare il suo indirizzo email; ancora una volta, l’attuale processo ad alto attrito rende molto più probabile che un amministratore verifichi o valuti l’autenticità della richiesta.
-
Minacce interne - Un amministratore malintenzionato potrebbe abusare di questa funzionalità per prendere il controllo degli account.
Per questo tipo di azioni amministrative rare e ad alto rischio, la console di Rails è appropriata perché garantisce che la persona che esegue l’azione abbia accesso al server e non una sessione compromessa. Inoltre, l’azione è deliberata, richiede conoscenze tecniche specifiche (ed è registrata nella cronologia della shell).