Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

199
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!