Abbiamo un'app che funziona con un'API privata. Abbiamo un server che ospita l'API, oltre a un pannello di amministrazione in cui il personale può accedere e apportare modifiche al contenuto dell'app. L'API e il pannello di amministrazione vengono eseguiti sullo stesso dominio web. Supponiamo che il dominio sia appname.com
e che gli URL siano appname.com/api
e appname.com/admin
In origine, non c'erano pagine Web pubbliche sul server o sul dominio. Tuttavia, abbiamo aggiunto una pagina di reimpostazione della password a appname.com/resetpassword
in modo che gli utenti di app che hanno dimenticato la password possano richiedere un'email di reimpostazione della password.
Subito dopo aver aggiunto la pagina di reimpostazione della password, il responsabile del progetto (che non è una persona tecnica) si è preoccupato che l'inserimento della pagina di reimpostazione della password nello stesso dominio dell'API e del sito di amministrazione potesse esporre il server agli hacker, che potrebbero altrimenti non essere a conoscenza del dominio poiché non ha altre pagine pubbliche. Hanno chiesto di inserire la pagina di reimpostazione della password su un dominio diverso in modo che gli hacker non sapessero come trovare il dominio principale.
Questa logica non ha senso per me, per diversi motivi:
- Non ho mai visto nessun altro fare qualcosa di simile a questo, anche se è difficile pensare a paralleli diretti
- Il nome di dominio del back-end non è difficile da indovinare anche quando non ci sono pagine pubbliche sul sito
- Se aggiungiamo un sito Web pubblico in futuro, verrebbe trovato logicamente nello stesso dominio, a quel punto il dominio non sarebbe più un segreto comunque
- Qualsiasi hacker abbastanza sofisticato da superare le misure di sicurezza sul server potrebbe facilmente trovare l'URL dell'API, e quindi il dominio del sito, seguendo i pacchetti inviati dall'app.
Tuttavia, il responsabile del progetto è fermamente convinto che la pagina di reimpostazione della password non può essere nel dominio principale. Ciò che mi colpisce è che la soluzione più semplice è impostare un alias di dominio, qualcosa come appname-passwordreset.com
, che punta direttamente ed esclusivamente alla pagina di reimpostazione della password. Tuttavia, ci acquisterà qualcosa? appname.com
e appname-passwordreset.com
avrebbero lo stesso indirizzo IP. L'utilizzo di quest'ultimo alias avrebbe realisticamente impedito a un hacker di trovare o irrompere nel server?
Nota: mi rendo conto che un'alternativa è lasciare che l'utente richieda la reimpostazione della password dall'app. Tuttavia, l'e-mail di reimpostazione della password deve avere un link a una pagina web, riportandoci così al problema originale