How can I reliably/securely tell if the user visiting our website is coming from inside of the corporate firewall? Is verifying the IP address enough?
Penso che una preoccupazione più grande sia "puoi scrivere questo codice in modo che nessuno possa manipolarlo?" Ne dubito molto, tuttavia, ci sono cose che puoi fare.
Modifica Ok, la vecchia risposta era probabilmente un po 'paranoica sulla sicurezza qui. L'introduzione del codice di debug nella tua app live è un rischio per la sicurezza perché è un altro livello di autenticazione che devi assolutamente prendere in considerazione. Tuttavia, in alcuni scenari, ciò potrebbe essere accettabile.
Nel caso di un negozio online, potrei dire che l'opzione migliore sono i certificati SSL lato client firmati da un certificato affidabile che il server conosce, possibilmente combinato con le restrizioni dell'indirizzo IP. Conserva un elenco di revoche Motivi per questo:
- Piuttosto difficile da parodiare. Il certificato deve essere firmato e autorizzato da te per primo e installato nel browser client. In questo modo la sicurezza diventa il controllo dell'accesso ai certificati autorizzati: puoi invalidarli dal lato server mantenendo un elenco di revoche / whelelist di fiducia "Mostrerò le informazioni del profilo a"
- Stai comunque utilizzando SSL nel caso più lento (utente registrato), quindi puoi supporre che i tempi di traffico basati su SSL siano limiti superiori (il semplice HTTP sarà più veloce, ma solo marginalmente).
- Affidati alle implementazioni crittografiche esistenti anziché tentare di implementare qualcosa di nuovo che potrebbe essere interrotto in modo crittografico.
- Potresti in effetti rilassare i requisiti IP in una certa misura; gli sviluppatori possono provare anche da casa.