Sono coinvolto nello sviluppo di un'applicazione SaaS. Ospitiamo l'applicazione per diversi clienti. Un cliente è un'azienda. Ogni cliente ottiene l'accesso all'istanza ospitata dell'applicazione tramite un URL https://example.com/customername
.
Abbiamo già ottenuto un'istanza in cui un cliente ha provato diverse altre società (potenzialmente concorrenti) per il customername
per vedere se qualcun altro sta utilizzando il nostro prodotto. Personalmente non penso che questo sia un problema eccessivo, ma riconosco che potrebbe essere sia un problema per alcuni potenziali clienti sia un problema di sicurezza, quindi sono interessato alle strategie di mitigazione.
Le soluzioni possibili finora sono
- Aggiungi una stringa non accessibile a
customername
:https://example.com/acmeinc-8a4f
. Penso che questo a) sembri brutto (e sì, abbiamo già un cliente che ha insistito su una particolare ortografia nell'URL per motivi di CI) eb) assolutamente richiede a tutti gli utenti di avere un segnalibro o di ricordare una cosa in più irrilevante. - Mostra semplicemente un modulo di accesso indipendentemente da ciò che viene utilizzato come
customername
e rifiuta semplicemente qualsiasi combinazione di utente / password. All'inizio questo sembra promettente, ma stiamo già implementando diversi meccanismi di accesso, incluso il login senza password tramite SSO, in modo che i clienti possano ottenere schermate di accesso differenti. Ciò impedisce anche una versione di una schermata di accesso in cui il nome del cliente diventa parte del modulo utente / password. Sono sicuro che prima o poi la schermata di login dovrà corrispondere anche all'IC di un cliente.
È persino possibile mitigare questo problema in modo intuitivo?