2011-08-23 46 views
34

Ho cercato nel Web qualcosa sul proxy http. Ho letto articoli wiki sul server proxy. Ma ancora non capisco come funziona il proxy http, stupido.come funziona il proxy http?

Ecco la mia ipotesi su come funziona il proxy http: Se imposto il proxy http su uno specifico, ad esempio Proxy_A, quindi quando avvio il chrome/IE, digita un URL specifico, ad esempio URL_A, non il chrome/IE invia la richiesta direttamente a Proxy_A, quindi il Proxy_A invia la richiesta al real server di URL_A?

+1

Sì, per lo più quindi Proxy_A invia la risposta di nuovo voi. Abbastanza semplice eh –

+3

http://www.amazon.com/HTTP-Definitive-Guide-David-Gourley/dp/1565925092/ref=sr_1_1?ie=UTF8&qid=1314064943&sr=8-1 ha un intero capitolo sul proxy http – titus

+0

Questo la domanda è appena rilevante per lo stackoverflow. – unixman83

risposta

45

Un proxy HTTP parla il protocollo HTTP, è soprattutto fatta per le connessioni HTTP, ma può essere oggetto di abusi per altri protocolli come pure (che è un pò già di serie)

Il browser (client) invia GET http://SERVER/path HTTP/1.1 al proxy
Ora PROXY inoltrerà la richiesta effettiva al SERVER.
Il SERVER vedrà solo il PROXY come connessione e risponderà al PROXY come per un CLIENTE.
Il PROXY riceve la risposta e la inoltra al CLIENT.

È un processo trasparente e quasi come comunicare direttamente con un server, quindi è solo un piccolo sovraccarico per il browser per implementare un proxy HTTP.
Ci sono alcune intestazioni aggiuntive che possono essere inviate per identificare il cliente, rivelano che sta usando un proxy.
I proxy a volte cambiano/aggiungono contenuto all'interno del flusso di dati per vari scopi.
Alcuni proxy includono ad esempio il proprio IP reale in uno speciale HEADER HTTP che può essere registrato lato server o intercettato nei propri script.

CLIENT <---> PROXY <---> SERVER 

Aggiornamento:
correlati all'utilizzo di proxy come una caratteristica di sicurezza/privacy
Come si può vedere nel ascii sopra, non v'è alcuna comunicazione diretta tra client e server. Entrambe le parti parlano solo con il PROSSIMO.
Nei mondi moderni il CLIENT è spesso un browser e il SERVER è spesso un server Web (ad esempio Apache).

In un tale ambiente, gli utenti spesso si fidano del fatto che il PROXY sia sicuro e che non perdano la loro identità.
Tuttavia ci sono molti modi possibili per rovinare questo modello di sicurezza a causa di complessi framework software in esecuzione sul browser.
Ad esempio, le applet Flash o Java sono un esempio perfetto di come una connessione proxy può essere infranta, sia a Flash che a Java potrebbero non interessare molto le impostazioni proxy dell'applicazione madre (browser).
Un altro esempio sono le richieste DNS che possono raggiungere il server dei nomi di destinazione senza PROXY a seconda del PROXY e delle impostazioni dell'applicazione.
Un altro esempio potrebbe essere i cookie o il tuo meta foot del browser (resollution, tempi di risposta, user-agent, ecc.) Che potrebbero identificarti se il server web ti conosce già dal passato (o ti incontra di nuovo senza un proxy).

E alla fine, il proxy stesso deve essere considerato affidabile in quanto è in grado di leggere tutti i dati che lo attraversano e potrebbe persino essere in grado di violare la sicurezza SSL (leggere l'uomo nel mezzo)

Dove ottenere i proxy da
I proxy possono essere acquistati come servizio, scansionati o semplicemente eseguiti da soli.

proxy pubblici
Questi sono i proxy più utilizzati e la solita termine "pubblico" è del tutto fuorviante.
Il termine migliore sarebbe "open proxy". Se si esegue un server proxy senza firewall o autenticazione chiunque nel mondo può trovarlo e abusarne.
La grande maggioranza delle aziende che vendono proxy si limita a cercare su internet tali proxy o utilizza computer Windows hacker (botnet) e li vende per attività prevalentemente illegali/spam.
La maggior parte dei paesi moderni può vedere l'uso di un proxy aperto senza autorizzazione come abuso, è una cosa molto comune, ma può effettivamente portare alla prigione.
È possibile eseguire la ricerca di proxy effettuando la ricerca su Internet per le porte aperte, un tipico programma gratuito sarebbe https://nmap.org
Come precauzione: la scansione in scala più ampia quasi certamente impedirà la connessione a Internet da parte dell'ISP.

proxy a pagamento
Qui abbiamo 4 tipi di proxy:
1) A carico proxy pubblici (aperti)
Fondamentalmente questi venditori vendere o rivendere liste enormi di deleghe che vengono regolarmente aggiornata per rimuovere morti .
I proxy sono abusati su larga scala e di solito nella lista nera della maggior parte dei siti, incluso Google.
Inoltre, questi proxy sono in genere molto instabili e molto lenti.
La grande maggioranza di questi proxy sta semplicemente abusando di server configurati in modo errato. È un "mercato" molto competitivo, Google porterà molti esempi. 2) Proxy depistati (botnet)
Si tratta di computer abusivi, per lo più internet-of-things o desktop Windows come host proxy. Gli aggressori li usano in larga scala per vari scopi illegali.
I venditori di solito li chiamano "proxy residenziali" per nascondere la natura illegale di essi.
L'utilizzo di tale proxy è senza dubbio illegale e l'utente maltrattato può facilmente accedere al "tuo" IP se ci si connette ad esso, inclusa la possibilità di dirottare la connessione verso la destinazione.
A seconda della fonte, questi IP non sono nella lista nera, quindi la "qualità" è molto meglio dei proxy pubblici.
3) proxy condivisi a pagamento
Questi sono proxy di datacenter, solitamente legali e potenziali con un uplink veloce.
A causa del fatto che c'è così tanto spamming per l'e-commerce, questi IP sono pesantemente abusati e di solito si trovano nelle blacklist.
Un uso tipico sarebbe l'elusione delle restrizioni di craigslist o delle restrizioni geografiche.
4) Proxy privati ​​/ dedicati a pagamento
"privato" significa dedicato.Se l'operatore è professionale, significa che il tuo proxy non è condiviso tra le altre persone.
Questi sono spesso utilizzati per attività più professionali e legali, specialmente quando l'IP del proxy viene affittato per un periodo più lungo.
Un operatore ben noto sarebbe https://us-proxies.com

deleghe proprie
esecuzione di un proprio proxy è possibile pure, ci sono vari progetti open-source disponibili.
Il server proxy per lo più utilizzato è https://squid-cache.org

+3

Quindi, come viene inviato l'URL originale al proxy? – edwin

+0

Cerca all'inizio, "http: //host.tld/path" è l'URL. – John

+0

@John - se il SERVER vede il Proxy come "client", allora come sono gestiti i cookie? In altre parole, cosa impedisce che i cookie vengano rilasciati sul proxy o sul CLIENT effettivo? – Howiecamp

6

Per aggiungere alla grande risposta di Giovanni sopra, un passo importante è la stretta di mano CONNECT iniziale tra PROXY e cliente. Dal Websocket RFC

CONNECT example.com:80 HTTP/1.1 
Host: example.com 

Questa è la stessa richiesta che un client utilizza per aprire un tunnel SSL, che utilizza essenzialmente un proxy

+1

Ritengo che questa sia la parte complessa della risposta e la risposta accettata è piuttosto banale senza questo. Hai risposto alla parte importante: _how_ si verifica il proxy. O almeno hai dato un vantaggio a ulteriori informazioni. –

+1

No, in realtà non è vero, il trik Ivan ha appena descritto il metodo CONNECT, ma la domanda riguardava i proxy http. CONNECT viene utilizzato per aprire un tunnel TCP/IP non universale mentre GET come nella mia risposta viene utilizzato per un tunnel specifico. HTTP. Per SSL è necessario un tunnel grezzo a causa della crittografia, ecco perché viene utilizzato CONNECT. – John