2012-11-14 17 views
5

Ho un programma in cui controlla un file php su un server web per vedere se l'utente è verificato. I file php attraversano il DB e controllano e echos "verificato" se lo sono.Delphi XE2 - Come ottenere l'IP di un sito Web specificato?

Ora, le persone ora aggirano facilmente il sistema di verifica installando Xampp, instradando il mio server su 127.0.0.1 nel loro file hosts e quindi impostando uno script che echos abbia verificato.

Desidero poter controllare l'indirizzo IP del mio dominio per verificare se è in routing su 127.0.0.1.

Come dovrei risolvere la risoluzione dell'indirizzo IP di un dominio tramite delphi?

+4

Ovviamente non hai letto correttamente la domanda. –

+0

@WarrenP un IP numerico può essere reindirizzato nel file hosts –

risposta

14

Ho usato un simile hack per aggirare le verifiche sul lato server di ICQ. Molto comodo quando ho voluto mettere alla prova alpha/beta build che non sono stato invitato a :-)

Indy, che viene fornito con Delphi, ha una funzione TIdStack.ResolveHost(), e un componente separato TIdDNSResolver, in grado sia di essere utilizzati per ottenere il IP (s) del dominio. Ha anche una proprietà TIdStack.LocalAddresses per recuperare gli indirizzi IPv4 locali. In alternativa, è possibile utilizzare direttamente le funzioni API gethostbyname() o getaddrinfo() o le API specifiche della piattaforma per enumerare gli IP locali, ad esempio la funzione GetAdaptersAddresses() su Windows.

Tuttavia, piuttosto che avere lo script PHP è sufficiente riportare il testo in chiaro alla tua app, un'opzione molto più sicura che non richiede di verificare gli IP è che la tua app crei un valore nonce generato dinamicamente e lo invii a lo script PHP, quindi lo script lo elabora, lo hash, qualsiasi cosa sia necessaria usando un algoritmo che solo tu conosci e poi lo rimandi all'app. L'app può eseguire lo stesso algoritmo e confrontare i risultati. A meno che qualcuno non impieghi il tempo per eseguire il reverse engineering della tua app, non sarà in grado di riprodurre il tuo algoritmo o falsificare i suoi risultati con i propri script Xampp personalizzati.

Ancora meglio, utilizzare SSL/TLS per crittografare la connessione al server di dominio e fornire al server di dominio un certificato SSL che l'app può verificare prima di scambiare qualsiasi dato con lo script PHP. Se fai così, puoi continuare a utilizzare l'eco di testo normale poiché SSL/TLS verificherà che sei connesso al tuo dominio per te.

+0

+1 per l'idea SSL/certificato – Remko

Problemi correlati