Protezione del pannello di amministrazione di e-commerce con una VPN

1

Sto sviluppando il back-end di un sistema di e-commerce, che ha clienti e account di tipo amministratore. Questi due ruoli non si sovrappongono, gli amministratori sono lì per fare il lavoro di back office, mentre i clienti fanno lo shopping.

Mi piacerebbe rendere il pannello di amministrazione completamente inaccessibile al pubblico. Se fossi l'unico sviluppatore, probabilmente opterei per lo sviluppo di due applicazioni per lo più legate dallo stesso database. Il mio ragionamento si basa principalmente sul principio del minimo privilegio - se non è necessario rendere pubblico qualcosa, allora perché dovrei? Inoltre, questo non significa che intendo implementare una debole sicurezza del cliente. Credo solo che se riuscirò a ottenere un po 'di sicurezza in più per questo specifico scenario, perché no?

Tuttavia, il mio collega, che sta eseguendo l'interfaccia utente, ha deciso di creare un'unica app con un'unica pagina di accesso per tutti gli utenti. Immagino che non sia davvero importante, e non sono appassionato di argomenti. Eppure mi piacerebbe ancora applicare il suddetto principio per rendere in qualche modo impossibile accedere come amministratore dal pubblico.

Stavo pensando:

  1. Avere un dominio principale mystore.com e un sottodominio admin.mystore.com entrambi che puntano allo stesso back-end.
  2. Consenti solo l'accesso al sottodominio tramite una connessione VPN (suppongo che eseguirò i controlli necessari nel codice dell'applicazione back-end).
  3. Se la richiesta di accesso proviene dal sottodominio di amministrazione, associo nuovamente le credenziali alla tabella degli amministratori. Altrimenti controllerei la tabella dei clienti.

Ai miei occhi, un amministratore non è un cliente, e dal momento che non condividono realmente alcun dettaglio a parte le credenziali di accesso e il nome completo, terrei questi due distinti.

Domande:

  1. In generale, il mio ragionamento ha senso, quanto è brutta questa idea e sto solo perdendo tempo?
  2. Se è fattibile, è solo possibile consentire l'accesso a un subdomian tramite una VPN? Purtroppo non so molto sull'impostazione delle VPN.
  3. Se non è fattibile, quale sarebbe il tuo consiglio? Avresti un sito, una pagina di accesso, una tabella comune e esattamente lo stesso livello di sicurezza sia per gli amministratori che per i clienti?

Ulteriori dettagli

Probabilmente non ho reso la mia limitazione molto chiara.

Diciamo che ho già un'app funzionante con una sola pagina dell'interfaccia utente, che non potrò modificare per una serie di motivi.

Questo codice UI ha una pagina di accesso, che chiama da qualche parte un endpoint di accesso, che restituisce un token. Sulla base di questo token, la pagina reindirizza l'utente all'amministratore o alla dashboard del cliente.

Le risorse dell'amministratore nel back-end sono, ovviamente, protette dai ruoli utente, quindi non è un problema enorme . Eppure, oltre a questo, voglio limitare il più possibile la possibilità di accedere come amministratore dall'Internet pubblica.

Ho completa libertà sul server e nessun controllo sull'interfaccia utente. Stavo pensando di separare amministratori e clienti in diverse tabelle e di instradare la richiesta di accesso in modo che corrisponda alla rispettiva tabella in base al modo in cui si accede all'endpoint. Se non riesco a ottenere ciò che voglio in questo modo, allora sembra come qualsiasi altra modifica richiederebbe una modifica dell'interfaccia utente.

    
posta Avius 13.09.2018 - 11:32
fonte

2 risposte

0
  1. Overall, does my reasoning make any sense, how bad is this idea and am I just wasting my time?

Onestamente, penso che stai sprecando il tuo tempo. Se non è possibile isolare le funzionalità di amministrazione in un'applicazione separata, si corre il rischio che un utente malintenzionato elimini i propri privilegi a livello di amministratore all'interno dell'app condivisa.

Un controllo IP è banale da aggirare per un aggressore motivato.

  1. If it's feasible, is only allowing access to a subdomian via a VPN possible? Sadly I don't know much about setting VPNs up either.

Sono sicuro che sia possibile, ma ancora una volta, perché passare attraverso il problema della configurazione VPN se non risolverà il tuo problema di root?

  1. If not feasible, what would be your advice? Would you have one site, one login page, one common table and exactly the same level of security for both the admins and customers?

Il mio consiglio? Separa le applicazioni e proteggi il sito di amministrazione usando la segregazione di rete (VPN, qualunque cosa).

Se ci sono dei motivi che ti impediscono di farlo, devi semplicemente riconoscere che il sito di amministrazione non è sicuro come desideri.

    
risposta data 14.09.2018 - 16:53
fonte
0
  1. Hai ragione. Avere lo stesso sito fa entrambe le cose è un inutile rischio per la sicurezza. Inoltre rende la vita difficile doversi preoccupare di entrambi i tipi di utente in ogni momento.

  2. No, se è lo stesso sito, è lo stesso sito. Non importa quale sia l'URL in cui sei entrato

  3. Il mio consiglio sarebbe come dici tu, separare completamente la funzionalità di amministrazione dal sito dello shopping. In effetti probabilmente vorrai più di un sito di amministrazione, uno per il contenuto, uno per lo stock, uno per i report ecc ecc

risposta data 13.09.2018 - 14:06
fonte

Leggi altre domande sui tag