Come costruire un proxy HTTP in Python

Come fare, Proxy, Python, Nov-15-20225 minuti di lettura

Una persona media potrebbe avere un concetto vago della funzione di un server proxy. La maggior parte delle persone associa i server proxy al raggiungimento della privacy o allo sblocco dei contenuti di Netflix da altri Paesi. Ma la realtà è ben diversa: i server proxy fanno molto di più e sono fondamentali per le aziende. Si può pensare ai server proxy come a degli intermediari

Indice dei contenuti

Una persona media potrebbe avere un concetto vago della funzione di un server proxy. La maggior parte delle persone associa i server proxy al raggiungimento della privacy o allo sblocco dei contenuti di Netflix da altri Paesi. Ma la realtà è ben diversa: i server proxy fanno molto di più e sono fondamentali per le aziende.

I server proxy sono meccanismi intermedi tra il client che invia la richiesta e il server che la riceve. Hanno un proprio indirizzo IP che viene invece reso pubblico. È possibile utilizzare l'indirizzo IP proxy per molte funzioni aziendali essenziali relative all'esperienza del cliente e alla sicurezza. Altri vantaggi dell'in

Perché è necessario utilizzare i proxy?

Ogni azienda deve conoscere le cinque ragioni aziendali fondamentali per l'utilizzo dei proxy, indicate di seguito.

Svolgimento anonimo di compiti sensibili

I proxy sono noti per la loro capacità di rendere anonimo il traffico web. Ma la maggior parte delle persone non comprende la loro importanza nel settore commerciale. I server proxy consentono ai responsabili della sicurezza e ai giornalisti di proteggere se stessi, le aziende, le fonti, i clienti e i partner.

È possibile utilizzare i proxy anche per proteggere lo sviluppo e la ricerca in corso e altre attività aziendali. Supponiamo che la vostra azienda utilizzi un proxy e una potenziale spia per tracciare il traffico web e determinare gli sviluppi della vostra attività. In questo caso, non sarà in grado di rintracciare facilmente i vostri dipendenti.

Migliorare la sicurezza aziendale e istituzionale

Si sa che le violazioni dei dati sono costose sia in termini di immagine pubblica che di perdite monetarie. Le aziende sono quindi preoccupate dagli hacker. Ma i proxy possono aiutarvi perché riducono le possibilità di violazione dei dati. Aggiungono un ulteriore livello di sicurezza tra i vostri server e il traffico esterno. I server proxy fungono anche da cuscinetto, in quanto si affacciano su Internet e inoltrano le richieste dai computer esterni alla rete.

Se gli hacker hanno accesso ai vostri server proxy, avranno comunque problemi a raggiungere il server che esegue il software web in cui sono memorizzati i dati.

Controllo dell'uso di Internet da parte dei dipendenti

Si sa che le violazioni dei dati sono costose sia in termini di immagine pubblica che di perdite monetarie. Le aziende sono quindi preoccupate dagli hacker. Ma i proxy possono aiutarvi perché riducono le possibilità di violazione dei dati. Aggiungono un ulteriore livello di sicurezza tra i vostri server e il traffico esterno. I server proxy fungono anche da cuscinetto, in quanto si affacciano su Internet e inoltrano le richieste dai computer esterni alla rete.

Se gli hacker hanno accesso ai vostri server proxy, avranno comunque problemi a raggiungere il server che esegue il software web in cui sono memorizzati i dati.

Risparmiare larghezza di banda e ottenere velocità più elevate

Alcuni pensano che i server proxy rallentino la velocità di Internet a causa della grande quantità di lavoro che svolgono in background. Ma non è sempre vero. I server proxy possono essere utilizzati per risparmiare larghezza di banda e aumentare la velocità:

  • Caching delle pagine web e dei file a cui accedono più utenti
  • Comprimere il traffico
  • Eliminare gli annunci dai siti web

Costruire un proxy HTTP in Python

Per costruire un proxy HTTP in Python è necessario seguire i passi seguenti.

Importazione di librerie

È necessario importare le librerie necessarie indicate di seguito.

  • Un server_http semplice
  • Un server WebSocket semplice
  • urllib
da simple_websocket_server import WebSocketServer, WebSocket
importare simple_http_server
importare urllib

Il modulo urllib recupera le pagine web di destinazione. D'altra parte, simple_http_server e SimpleWebSocketServer ascoltano le richieste in arrivo.

È possibile inizializzare la porta come:

PORTA = 9097

Ottenere richieste

È possibile ereditare SimpleHTTPRequestHandler per creare il proprio proxy. Si può definire una funzione do_GET, che sarà chiamata per tutte le richieste GET.

classe MyProxy(simple_http_server.SimpleHTTPRequestHandler):
  def do_GET(self):
   	url=self.path[1:]
   	self.send_response(200)
   	self.end_headers()
    self.copyfile(urllib.urlopen(url), self.wfile)

Rimozione della barra dell'URL

Nella riga di codice precedente, l'URL avrà una barra (/) all'inizio dei browser. È possibile utilizzare la riga di codice seguente per rimuovere lo slash.

url=self.path[1:]

Invio di intestazioni

È necessario inviare le intestazioni, poiché i browser ne hanno bisogno per segnalare un'operazione di recupero riuscita con il codice di stato HTTP 200. È possibile utilizzare la libreria urllib per recuperare l'URL.

Abbiamo usato la funzione copyfile per scrivere l'URL al browser nel codice sottostante.

self.send_response(200)
self.end_headers()
self.copyfile(urllib.urlopen(url), self.wfile)

Utilizzo di TCP

È possibile utilizzare la modalità ForkingTCPServer per la gestione degli interrupt, come mostrato nel codice seguente.

httpd = WebSocketServer.ForkingTCPServer(('', PORT), MyProxy)
httpd.serve_forever()

L'intero codice è come:

da simple_websocket_server import WebSocketServer, WebSocket
importare simple_http_server
importare urllib
PORTA = 9097
MyProxy(simple_http_server.SimpleHTTPRequestHandler):
	def do_GET(self):
	   url=self.path[1:]
	   self.send_response(200)
	   self.end_headers()
    	self.copyfile(urllib.urlopen(url), self.wfile)
httpd = WebSocketServer.ForkingTCPServer(('', PORT), MyProxy)
print ("Ora sta servendo a"str(PORT))
httpd.serve_forever()

Quali proxy utilizzare?

Si potrebbe pensare che esista un unico tipo di proxy che offra tutti i vantaggi alle aziende, come ad esempio:

  • Prevenzione delle violazioni dei dati
  • Definizione di prezzi competitivi
  • Raccolta di dati preziosi sui social media
  • Costruire una strategia SEO efficace

In realtà, esistono molti tipi di proxy e quello da utilizzare dipende dai requisiti o dal caso d'uso.

Di seguito sono riportati i tipi più comuni di proxy.

Proxy per centri dati

I proxy dei centri dati sono i proxy più comuni utilizzati dalle aziende di tutto il mondo. I centri dati producono e gestiscono questi proxy. È possibile utilizzare questi proxy per migliorare la sicurezza del proprio sistema, poiché sono economici e facili da acquistare. Tuttavia, alcuni siti web ne vietano l'uso perché li associano ad attività di tipo bot.

Deleghe residenziali

I proxy residenziali sono associati a residenze fisiche e utilizzano gli indirizzi IP di persone reali forniti dai provider di servizi Internet (ISP). Quando li utilizzate per collegarvi a un sito web, sembrate un utente comune. In questo modo, è meno probabile che veniate individuati e bannati. Utilizzando i proxy residenziali, è possibile effettuare lo scraping di una grande quantità di dati web e ottenere un maggiore anonimato e sicurezza.

Conclusione

Finora abbiamo discusso della necessità di utilizzare proxy di alta qualità per la vostra attività. Infatti, i proxy gratuiti sono disponibili pubblicamente e vengono utilizzati da molte persone riducendo la velocità della rete. Inoltre, gli hacker violano gli indirizzi IP di questi utenti per accedere alle loro piattaforme. Inoltre, è probabile che i siti web vietino gli indirizzi IP dei proxy gratuiti che desiderano raschiare i dati dal loro sito. Oltre a utilizzare i proxy dei centri dati, è possibile acquistare proxy residenziali per sfruttare quasi tutti i vantaggi dei proxy. Sebbene siano costosi, sono un valido investimento per la vostra azienda.