2015-05-27 14 views
5

Sto cercando di capire come è possibile che il nostro vero indirizzo IP venga scoperto anche dopo aver attraversato un proxy ad alta sicurezza privato esclusivo (sono l'unico utente).Perché il mio vero indirizzo IP è ancora visibile anche quando si utilizza un proxy?

PROXY_IP = "<private proxy IP>:<port>" 

options = webdriver.ChromeOptions() 
options.add_argument("--proxy-server=%s" % PROXY_IP) 

driver = webdriver.Chrome(executable_path=".\\driver\\chromedriver.exe", 
          chrome_options=options) 

driver.get("http://www.stayinvisible.com/") 

Questo sito Web visualizza una serie di dati che possono essere presi dalla tua interazione con esso. Elenca correttamente l'indirizzo IP del proxy e, con mia sorpresa, elenca anche il nostro indirizzo IP DSL come "IP aggiuntivo".

Come sta succedendo e come lo evitiamo?

Un pensiero è che potrebbero utilizzare JavaScript/Java in modo intelligente per acquisire i dati di geolocalizzazione e inviarli a se stessi. Ho scansionato il codice sorgente della pagina e non sono riuscito a trovare nulla che risalta (anche se non ho fatto una recensione esauriente).

EDIT 1:

Se uso un diverso sito di controllo non sembrano segnalare il mio vero IP. Per esempio, nessuno di questi sembra di vedere il vero IP:

driver.get("http://simplesniff.com/") 

o

driver.get("http://analyze.privacy.net/") 

EDIT 2:

Per uno dei commenti, ho provato:

driver.get("http://myhttp.info/") 

Nessun segno di IP reale da nessuna parte. Mi piacerebbe sapere che cosa il codice stayinvisible.com sta facendo ...

EDIT 3:

forse ho trovato la risposta: WebRTC

https://www.privateinternetaccess.com/forum/discussion/8204/how-to-stop-webrtc-local-ip-address-leaks-on-google-chrome-and-mozilla-firefox-while-using-private-i

Questo, a quanto pare è una cosa che influisce su Chrome su Windows. Che è esattamente quello che sto correndo (mi serve bene). Ho capito questo dopo aver finalmente trovare un sito che verifica la presenza di perdite IP che mi ha detto come hanno ottenuto l'indirizzo reale:

driver.get("http://ipleak.net/") 

non ho il tempo di oggi, ma domani mi controllerò Firefox sotto Windows e anche Chrome sotto desktop Ubuntu e OSX solo per triplo controllo.

EDIT 4: soluzione parziale

Beh, ovviamente non sto seduto ad aspettare una risposta.

OK, ho risolto il primo problema. Sospettavo che http://simplesniff.com/ usasse Flash o Java per scoprire l'indirizzo IP reale. Si è rivelato Flash. Era semplice come disabilitarlo tramite chrome: // plugins e ricaricamento per verificare.

Per disabilitare Flash in codice:

options = webdriver.ChromeOptions() 
options.add_argument("--proxy-server=%s" % PROXY_IP) # Tell Chrome to use a proxy 
options.add_argument("--disable-bundled-ppapi-flash") # Disable internal Flash player 
options.add_argument("--disable-plugins-discovery")  # Disable external Flash player (by not allowing it to load) 

funziona come un fascino. Ora http://simplesniff.com/ non è in grado di individuare l'indirizzo IP reale.

Un problema rimane: WebRTC. Questo potrebbe negare l'utilizzo di Chrome su Windows fino a quando Google non lo risolve.

+1

Sembra piuttosto che il proxy di sicurezza elevata imposti un'intestazione var come X-FORWARDED-FOR o X-REAL-IP ....? –

+0

Sì, usa un sito Web che mostra tutte le intestazioni per la tua richiesta, come http://myhttp.info/. – kindall

risposta

2

Credo di aver risposto alla mia domanda nelle modifiche. La linea di fondo è che questo è un problema a tre teste: Java, Flash e WebRTC. Per le mie modifiche alla domanda, Java e Flash sono facili da gestire. WebRTC sembra essere un problema solo durante l'esecuzione di Chrome su Windows.

Nel nostro caso il codebase finale verrà eseguito su un server Linux utilizzando PhantomJS. Questo significa che nessuno dei suddetti problemi sarà un problema.

Abbiamo una piccola applicazione che verrà eseguita su una macchina Windows per comodità. Poiché sembra esserci un bug che rende problematico l'utilizzo di Firefox e Selenium 2.0, la soluzione è eseguire questo codice base su una macchina virtuale Ubuntu Workstation su un host Windows. In tal caso, Chrome dovrebbe comportarsi bene e tutto andrà bene.