Como construir um proxy HTTP em Python

Como fazer, Proxies, Python, Nov-15-20225 minutos de leitura

Uma pessoa comum pode ter um conceito vago da função de um servidor proxy. A maioria das pessoas associa os servidores proxy à obtenção de privacidade ou ao desbloqueio de conteúdos Netflix de outros países. Mas a realidade é bem diferente, pois os servidores proxy fazem muito mais e são vitais para as empresas. Pode pensar-se nos servidores proxy como intermediários

Índice

Uma pessoa comum pode ter um conceito vago da função de um servidor proxy. A maior parte das pessoas associa os servidores proxy à obtenção de privacidade ou ao desbloqueio de conteúdos Netflix de outros países. Mas a realidade é bem diferente, pois os servidores proxy fazem muito mais e são vitais para as empresas.

Pode pensar-se nos servidores proxy como mecanismos intermédios entre o cliente que envia o pedido e o servidor que o recebe. Têm o seu próprio endereço IP que, em vez disso, é tornado público. Pode utilizar o endereço IP proxy para muitas funções empresariais essenciais relacionadas com a experiência do cliente e a segurança. Outras vantagens do in

Porque é que é necessário utilizar proxies?

Todas as empresas precisam de conhecer as cinco razões empresariais vitais para a utilização de proxies mencionadas abaixo.

Execução de tarefas sensíveis de forma anónima

Os proxies são bem conhecidos pela sua capacidade de tornar anónimo o tráfego da Web. Mas a maioria das pessoas não compreende a sua importância no sector empresarial. Os servidores proxy permitem que os agentes de segurança e os repórteres se protejam a si próprios, às empresas, às fontes, aos clientes e aos parceiros.

Também é possível utilizar proxies para proteger o desenvolvimento e a investigação em curso e outras actividades da empresa. Suponha que a sua empresa utiliza um proxy e um potencial espião para seguir o tráfego da Web e determinar o que a sua empresa está a desenvolver. Nesse caso, não conseguirá localizar facilmente os seus empregados.

Melhorar a segurança empresarial e institucional

Sabe que as violações de dados são dispendiosas, tanto em termos de imagem pública como de perdas monetárias. Por isso, as empresas estão preocupadas com os piratas informáticos. Mas os proxies podem ajudá-lo, pois reduzem a possibilidade de violação de dados. Acrescentam uma camada adicional de segurança entre os seus servidores e o tráfego exterior. Os servidores proxy também actuam como um amortecedor, uma vez que enfrentam a Internet e retransmitem pedidos de computadores fora da rede.

Se os piratas informáticos tiverem acesso aos seus servidores proxy, continuarão a ter dificuldade em chegar ao servidor que executa o software Web onde os dados estão armazenados.

Controlo da utilização da Internet pelos empregados

Sabe que as violações de dados são dispendiosas, tanto em termos de imagem pública como de perdas monetárias. Por isso, as empresas estão preocupadas com os piratas informáticos. Mas os proxies podem ajudá-lo, pois reduzem a possibilidade de violação de dados. Acrescentam uma camada adicional de segurança entre os seus servidores e o tráfego exterior. Os servidores proxy também actuam como um amortecedor, uma vez que enfrentam a Internet e retransmitem pedidos de computadores fora da rede.

Se os piratas informáticos tiverem acesso aos seus servidores proxy, continuarão a ter dificuldade em chegar ao servidor que executa o software Web onde os dados estão armazenados.

Poupar largura de banda e obter velocidades mais rápidas

Algumas pessoas assumem que os servidores proxy diminuem a velocidade da Internet devido à grande quantidade de trabalho que realizam em segundo plano. Mas isso nem sempre é verdade. Os servidores proxy podem ser utilizados para poupar largura de banda e aumentar a velocidade:

  • Armazenamento em cache de páginas Web e ficheiros acedidos por vários utilizadores
  • Compressão do tráfego
  • Retirar anúncios dos sítios Web

Construindo um proxy HTTP em Python

É necessário seguir os passos abaixo para construir um proxy HTTP em Python.

Importação de bibliotecas

É necessário importar as bibliotecas necessárias abaixo mencionadas.

  • Um servidor_http_server simples
  • Um servidor SimpleWebSocketServer
  • urllib
from simple_websocket_server import WebSocketServer, WebSocket
importar simple_http_server
importar urllib

O módulo urllib vai buscar as páginas web de destino. Por outro lado, o simple_http_server e o SimpleWebSocketServer escutam os pedidos que chegam.

É possível inicializar a porta como:

PORT = 9097

Obter pedidos

Pode herdar SimpleHTTPRequestHandler para criar o seu proxy. Pode definir uma função do_GET que será chamada para todos os pedidos GET.

class 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)

Remover a barra do URL

Na linha de código acima, o URL terá uma barra (/) no início dos navegadores. Pode utilizar a linha de código abaixo para remover a barra.

url=self.path[1:]

Envio de cabeçalhos

É necessário enviar os cabeçalhos, uma vez que os navegadores precisam deles para comunicar uma pesquisa bem sucedida com o código de estado HTTP 200. Pode utilizar a biblioteca urllib para obter o URL.

Utilizámos a função copyfile para escrever o URL de volta para o browser no código abaixo.

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

Utilização de TCP

É possível utilizar o modo ForkingTCPServer para o tratamento de interrupções, como mostra o código abaixo.

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

O código completo é o seguinte:

from simple_websocket_server import WebSocketServer, WebSocket
importar simple_http_server
importar urllib
PORT = 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 ("Agora a servir em"str(PORT))
httpd.serve_forever()

Que proxies utilizar?

Poderá pensar-se que existe um único tipo de procuração que oferece todas as vantagens às empresas, tais como:

  • Prevenir as violações de dados
  • Fixação de preços competitivos
  • Recolha de dados valiosos nas redes sociais
  • Criar uma estratégia de SEO eficaz

Na realidade, existem muitos tipos de proxies disponíveis, e o que utilizar depende dos seus requisitos ou caso de utilização.

De seguida, apresentam-se os tipos mais comuns de proxies.

Proxies de centros de dados

Os proxies de centros de dados são os proxies mais comuns utilizados pelas empresas em todo o mundo. Os centros de dados produzem e gerem estes proxies. Pode utilizar estes proxies se tiver de melhorar a segurança do seu sistema, uma vez que são baratos e fáceis de adquirir. No entanto, alguns sítios Web proíbem a sua utilização por os associarem a actividades do tipo bot.

Procurações residenciais

Os proxies residenciais estão associados a residências físicas e utilizam os endereços IP de pessoas reais fornecidos pelos fornecedores de serviços Internet (ISP). Quando os utiliza para se ligar a um sítio Web, parece um utilizador comum. Assim, é menos provável que seja detectado e banido. É possível recolher uma grande quantidade de dados da Web utilizando proxies residenciais e obter um maior anonimato e segurança.

Conclusão

Até agora, falámos sobre a necessidade de utilizar proxies de alta qualidade para a sua empresa. Isto deve-se ao facto de os proxies gratuitos estarem disponíveis publicamente e serem utilizados por muitas pessoas, reduzindo a velocidade da rede. Além disso, os piratas informáticos pirateiam os endereços IP destes utilizadores para acederem às suas plataformas. Além disso, é provável que os sítios Web proíbam os endereços IP de proxies gratuitos que pretendam extrair os dados do seu sítio. Para além de utilizar proxies de centros de dados, pode comprar proxies residenciais para obter quase todas as vantagens dos proxies. Embora sejam dispendiosos, são um investimento que vale a pena para o seu negócio.