I controlli di accesso basati su IP non sono generalmente sensibili perché non esiste una relazione 1: 1 tra gli indirizzi IP e gli utenti. Più utenti possono condividere lo stesso indirizzo IP se sono dietro Network Address Translation (NAT) e la maggior parte degli utenti / dispositivi non ha un indirizzo IP statico. Per la maggior parte delle connessioni Internet, l'indirizzo IP viene assegnato dinamicamente e l'assegnazione può cambiare raramente. Inoltre, i dispositivi mobili (laptop, telefoni) possono spostarsi frequentemente da una rete all'altra. Per esempio. un cliente può utilizzare il servizio da un ufficio in un giorno, ma può lavorare da casa in un altro giorno.
L'unico scenario in cui i controlli di accesso basati su IP hanno senso se tutti i client hanno un indirizzo IP statico per il loro ufficio. Questo fa parte di molti, ma non tutti i pacchetti Internet orientati al business. Se il cliente desidera lavorare da un altro posto, dovrà configurare una VPN in modo che possa essere remoto nella rete dell'ufficio, quindi accedere alla tua app da lì.
I controlli di accesso basati su IP possono essere implementati in diversi modi:
-
all'interno dell'applicazione Web, dove si controllano i metadati della richiesta. Questo è il modo più flessibile e consente di associare gli IP agli account. Essere consapevoli del fatto che si desidera l'IP della richiesta originale. Se la tua app si trova dietro una cache o un proxy, dovrebbero inserire l'IP originale come intestazione (di solito X-Forwarded-For).
-
con un server gateway davanti all'app Web, ad es. se si esegue l'app dietro Apache come proxy inverso. Dovrai aggiornare la configurazione del server per ogni nuovo client.
-
con le regole del firewall, con cui è possibile inserire nella whitelist tipi di traffico specifici (ad esempio, consentire il traffico TCP alla porta 80 dall'IP del cliente, altrimenti rilasciare). Tuttavia, dovrai aggiornare la configurazione del firewall per ogni nuovo cliente poiché non puoi consentire l'accesso solo alla tua pagina di accesso e non al resto del sito.
-
richiedendo al client di configurare un bridge VPN / di rete dal router al router. Dal momento che tutti i client si connettono alla VPN vengono visualizzati all'interno della rete, quindi il firewall può semplicemente bloccare qualsiasi traffico in entrata che non sia il traffico VPN. Se configurato correttamente, questo è un meccanismo molto flessibile e molto sicuro, ma richiede l'installazione di apparecchiature di router di livello enterprise e amministratori esperti.
Quindi chiaramente nessuno di questi eccetto la prima soluzione (verifica i metadati della richiesta all'interno della tua app) è probabilmente poco pratico.
Sebbene i controlli di accesso basati su IP possano contribuire a una buona sicurezza in alcune circostanze, tendono a essere poco flessibili e scomodi. Infastidiranno anche i potenziali clienti che non hanno un indirizzo IP statico. Molto probabilmente altri meccanismi per rafforzare il tuo login potrebbero essere più flessibili e aggiungere più sicurezza, come incoraggiare gli utenti a scegliere password sicure, tentativi di accesso limitativi della velocità (per i quali i limiti di velocità degli indirizzi IP possono essere ragionevoli), autenticazione senza password tramite Provider di identità OpenID o autenticazione a più fattori.