elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Problema con creación de webproxy con nodejs
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con creación de webproxy con nodejs  (Leído 1,731 veces)
Ali Baba


Desconectado Desconectado

Mensajes: 310


Ver Perfil WWW
Problema con creación de webproxy con nodejs
« en: 26 Agosto 2018, 02:07 am »

Estoy creando un web proxy con nodejs y tengo un problema. Este es el index de la vista:

Código
  1.    <!DOCTYPE html>
  2.    <html lang="en" dir="ltr">
  3.      <head>
  4.        <meta charset="utf-8">
  5.  
  6.        <title>Hola</title>
  7.      </head>
  8.      <body>
  9.        <div class="container mt-5">
  10.          <div class="row mt-5">
  11.            <div class="mx-auto mt-5">
  12.              <div class="form-group">
  13.                <form class="" method="get" action="./">
  14.                  <input type="text" class="form-control" id="url" placeholder="www.example.com" name="url">
  15.                </form>
  16.              </div>
  17.            </div>
  18.          </div>
  19.        </div>
  20.      </body>
  21.    </html>
  22.  
y este es el archivo del servidor:

Código
  1.    const http = require("http");
  2.    const url = require("url");
  3.    const request = require("request");
  4.    const fs = require('fs')
  5.    var server = http.createServer(onRequest);
  6.  
  7.    function onRequest(req, res) {
  8.      var queryData = url.parse(req.url, true).query;
  9.      if (queryData.url) {
  10.        request({ url: "http://"+ queryData.url })
  11.          .on("error", function(e) {
  12.            res.end(e);
  13.          })
  14.          .pipe(res);
  15.      } else {
  16.        fs.readFile("index.html", (err, html) => {
  17.          if (err) {
  18.            console.log(err)
  19.          }
  20.          else {
  21.            res.write(html);
  22.            res.end();
  23.          }
  24.        });
  25.      }
  26.    }
  27.  
  28.    server.listen(80);
  29.  
Todo funciona casi a la perfección, pues yo envío los datos por formulario y todo bien. El me carga la página perfectamente, por ejemplo www.google.com, me deja navegar entre páginas y todo, pero una vez dentro de ella que intento hacer una búsqueda en Google por ejemplo, me devuelve al index de la vista y no me hace la búsqueda, entonces me redirecciona a un link como este: http://localhost/search?ie=ISO-8859-1&hl=en&source=hp&biw=&bih=&q=temas&btnG=Google+Search&gbv=2 y en el servidor que tengo en linux me pasa lo mismo, solo que en vez de localhost me aparece el nombre del dominio que tengo anclado ahí al servidor. Cuando intento acceder a Twitter o a cualquier página que contenga un login para entrar a mi cuenta, pues me saca del proxy y me envía a la página normal ¿Alguno tiene idea de que estoy haciendo mal?


En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: Problema con creación de webproxy con nodejs
« Respuesta #1 en: 26 Agosto 2018, 02:13 am »

Los enlaces que clickeas o los action que activas, llevan su "propia url" o en su defecto llevan una url relativa. Cuando recojas el contenido, reemplaza el dominio al que haces de proxy, por el tuyo propio.

Saludos


En línea

Ali Baba


Desconectado Desconectado

Mensajes: 310


Ver Perfil WWW
Re: Problema con creación de webproxy con nodejs
« Respuesta #2 en: 26 Agosto 2018, 02:39 am »

Los enlaces que clickeas o los action que activas, llevan su "propia url" o en su defecto llevan una url relativa. Cuando recojas el contenido, reemplaza el dominio al que haces de proxy, por el tuyo propio.

Saludos

No entendí nada. En realidad yo no se nada de proxy, este es una necesidad que me he sentido obligado a crear por así decirlo.
En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: Problema con creación de webproxy con nodejs
« Respuesta #3 en: 26 Agosto 2018, 02:57 am »

Supongamos que quieres hacer proxy, haces el proxy y le dices que te retorne lo que tiene google.com. El proxy va y te retorna lo que tiene google.com que es esto:

Código
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. </head>
  4.  
  5.    <a href='http://google.com/imagenes.html'>Imagenes</a>
  6.    <a href='acerca.html'>Acerca de nosotros</a>
  7.  
  8.    <form action='/search' method='get'>
  9.        <input type='text' value='' placeholder='buscar' name='q'>
  10.        <button type='submit'>Buscar!!</button>
  11.    </form>
  12.  
  13. </body>
  14. </html>

Tu "proxy" te devuelve la cosa tal cual, entonces cuando tu clickeas sobre "imagenes", tu navegador abre http://google.com (ruta completa), cuando clickeas sobre "Acerca de nosotros", tu navegador abre "tuproxy.com/acerca.html" (ruta relativa) y cuando buscas algo, tu navegador abre "tuproxy.com/search?q=labusqueda" (ruta relativa friendly)".

Lo que tienes que hacer, es que tu proxy, cambie eso, que cuando obtenga los contenidos de "google.com", reemplace todos los href, para que cuando clickeas sobre "Imagenes", se abra tuproxy.com/proxy?url=http://google.com/imagenes.html, para qque cuando clickeas sobre "Acerca de nosotros", tu navegador abra tuproxy.com/proxy?url=http://google.com/acerca.html y para que cuando hagas una busqueda, tu navegador abra "tuproxy.com/proxy?url=http://google.com/search?q=labusqueda".

PD: Y eso es la parte fácil, luego si quieres acciones más completas como el hecho de buscar en una pagina (y no hablemos de las sesiones y las cookies xD), tendras que emular las consultas POST enviando tu mismo el contenido a la página. Si no quieres complicarte mucho, busca algo que ya esta hecho, como esta librería..

https://github.com/nodejitsu/node-http-proxy

Saludos
« Última modificación: 26 Agosto 2018, 02:58 am por #!drvy » En línea

Ali Baba


Desconectado Desconectado

Mensajes: 310


Ver Perfil WWW
Re: Problema con creación de webproxy con nodejs
« Respuesta #4 en: 26 Agosto 2018, 03:07 am »

Supongamos que Google, tiene un href="/imagenes/google.png" hacia su logo por así decirlo. Entonces, cuando yo doy clic en un enlace que me lleva hacia esa imagen, lo que hace es darme esta url http://miproxy.com/?url=/images/google.png y para remediar eso lo que tengo que lograr es que el href termine siendo algo así href="http://example.com/?url=/images/google.png" ¿Entendí?
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
GPO y Webproxy
Redes
SuEz 2 2,398 Último mensaje 2 Noviembre 2010, 23:15 pm
por SuEz
problema con redireccionamiento, paso de variable a la vista, en nodejs « 1 2 3 »
Desarrollo Web
bengy 24 9,724 Último mensaje 14 Septiembre 2016, 03:51 am
por bengy
Creación de Método de Pago con NodeJS
Desarrollo Web
Ali Baba 3 2,977 Último mensaje 13 Octubre 2016, 21:52 pm
por EFEX
Problema de lectura de archivos en NodeJS con modulo File System
Desarrollo Web
Ali Baba 4 2,409 Último mensaje 6 Mayo 2017, 22:04 pm
por Ali Baba
Problema con base de datos en MongoDB y conexion con NodeJS
Desarrollo Web
Ali Baba 0 2,033 Último mensaje 23 Junio 2017, 17:27 pm
por Ali Baba
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines