Purtroppo, non penso che questo sia un approccio molto sicuro. Ci sono una serie di motivi per cui:
- NAT nella rete locale
- NAT sul tuo ISP (NAT di tipo carrier)
- Proxy ovunque tra il tuo browser e il tuo server web
- Carica i bilanciatori davanti al tuo server web
Ognuno di questi potrebbe portare a più dispositivi che accedono alla tua pagina per condividere lo stesso indirizzo IP.
Nel caso non ti sia familiare: Network Address Translation (NAT) consente a più sistemi su una rete di accedere al Internet dallo stesso indirizzo IP pubblico. Ciò è necessario perché ci sono molti più sistemi che accedono a Internet di quanti siano disponibili indirizzi IPv4 pubblici.
La maggior parte delle famiglie gestisce un router che esegue NAT per loro, ovvero qualsiasi sistema connesso a Internet (ad es. desktop, laptop, tablet, telefono, televisione) proviene dallo stesso indirizzo IP. Ciò significa anche che ognuno di questi sistemi può accedere alla tua pagina web e verrà autenticato.
Diventa peggio di così. Il tuo ISP potrebbe essere in esecuzione NAT carrier-grade (CGN) - il che significa che un intero gruppo di famiglie condividerà il Indirizzo IP come te Ciò significa che ognuno di essi potrebbe accedere alla tua pagina web e verrà autenticato.
Poi ci sono i proxy. Se il tuo browser invia traffico attraverso un proxy (come quello ospitato dal tuo ISP), o il tuo sito web si trova di fronte a una rete di consegna dei contenuti ( CDN) , quindi molto probabilmente otterrai l'indirizzo IP del proxy o nodo edge CDN, piuttosto che l'indirizzo IP del tuo computer.
Infine, se il tuo host web dispone di un servizio di bilanciamento del carico di fronte al tuo server web, allora potresti finire con l'indirizzo IP del servizio di bilanciamento del carico.
Per tutti questi motivi, non raccomanderei assolutamente un meccanismo di accesso che si basi esclusivamente sull'indirizzo IP dell'utente che accede alla tua pagina web.
Se non vuoi scrivere tu stesso il codice per l'autenticazione, ti consiglio di controllare alcune librerie di terze parti per farlo - assicurati però di rivedere il codice prima di implementarlo nella tua pagina web.
In merito allo spoofing IP
Altri hanno menzionato il rischio di spoofing IP, il che sembra facile in teoria, ma (anche in una forma semplificata) richiederebbe due diversi passaggi:
- Cambia l'indirizzo IP nell'intestazione del datagramma IP
- Intercetta la risposta dal server per leggere i risultati
Il primo bit non è difficile da solo. La difficoltà è che il server invierà la risposta all'IP spoofato, piuttosto che l'IP degli hacker. Per poter leggere la risposta, l'utente malintenzionato dovrebbe quindi intercettare la risposta all'utente. Questo sarebbe generalmente abbastanza difficile.