Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

202
Vistas
¿Hay fallas de seguridad al publicar HTML sin procesar en un servidor Node.js?

Tengo una aplicación web que necesita usar raspado, y necesito decidir entre 3 arquitecturas diferentes sobre cómo se dividirá el raspado entre el backend y el frontend.

Mi aplicación web usa un backend NodeJS (con Express) y un frontend React. Mi objetivo es analizar/extraer algo de HTML de un sitio web externo (lo llamaremos fakewebsite.com), probablemente con un paquete como Cheerio.

Aquí está el flujo general que necesita mi aplicación:

  1. El usuario especifica una URL de fakewebsite.com (por ejemplo, fakewebsite.com/post/12345) en mi sitio web front-end

  2. Esa página se analiza y los campos específicos se extraen de su HTML, y finalmente se entregan al backend para realizar una lógica de backend adicional.

Se me ocurren 3 configuraciones posibles para lograr este objetivo. Necesito decidir cuál es el mejor para seguir adelante.

  • Método A: todo el front-end

    1. Cuando el usuario especifica la URL, el front-end del lado del cliente solicita el archivo HTML desde la URL
    2. El front-end analiza la respuesta HTML con cheerio y obtiene los datos que necesita
    3. El front-end envía una solicitud al backend con los datos exactos que requiere el backend

    Esto parece bueno, pero expondría cierta lógica comercial (no lógica crítica, pero tampoco ideal) a los usuarios front-end.

  • Método B: todo el back-end

    1. El front-end envía una solicitud al back-end con la URL
    2. El back-end carga el HTML de la URL y raspa los campos que requiere
    3. El back-end continúa realizando lógica adicional

    Siento que esta opción no escalaría porque fakewebsite.com bloquearía mi backend para que no realice solicitudes después de un tiempo

  • Método C: Mezcla de front-end y back-end

    1. El front-end del lado del cliente obtiene el HTML de fakewebsite.com usando la URL
    2. El front-end envía este HTML al back-end a través de una solicitud POST
    3. El backend raspa este HTML y luego continúa realizando lógica adicional

    Me gusta más esta opción. Sin embargo, dudo sobre las fallas de seguridad con este enfoque, ya que, en teoría, un usuario malintencionado podría usar el punto final posterior con algún código HTML diseñado para inyectar código malicioso en mi servidor Node.

¿Están justificadas mis preocupaciones sobre las fallas de seguridad en el Método C (carga de HTML a Express)? ¿Tiene alguna recomendación sobre la mejor manera de proceder con la arquitectura de este problema de raspado?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Solo asegúrese de no publicar ningún código potencialmente malicioso en su backend.

Puede usar una biblioteca de desinfección como 'sanitize-html' ( https://npmjs.com/package/sanitize-html ) o 'dompurify' ( https://www.npmjs.com/package/dompurify ) y desinfectar su cadena antes de PUBLICARLO. Entonces estarás bien.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda