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

181
Vistas
encabezado de seguridad de back-end del nodo js

estoy tratando de crear un punto final/api de inicio de sesión, y estoy enviando los datos de inicio de sesión del usuario a través de los encabezados de autenticación, ¿está bien para la seguridad? los encabezados de autorización en realidad contienen un objeto, están codificados en Base64, contienen datos de usuario como contraseña hash (aún no hash en este código), nombre de usuario y algún tipo de clave de servidor (para autorizar si es el cliente correcto que enviando una solicitud de API), solo quiero asegurarme de si es seguro o no ...

 const aFunction = (req, res) => { require('crypto').randomBytes(48, function(err, buffer) { const token = buffer.toString('hex'); const auth = JSON.parse(Buffer.from(req.headers.authorization, 'base64').toString('ascii')) if(auth.serverkey == version["serverkey"]){ loginUser(auth.username,token).then(data =>{ if (data.rows.length < 1 || data.rows[0].password != auth.password) { res.send({ status: "failed", message: "Username/Password is wrong", status_code: 400 }) }else{ res.send({ status: "success", message: "successfully logged in", status_code: 200, token: token }) } }) }else{ res.send({ status: "failed", message: "Unauthorized Client", status_code: 401 }) } }); }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Agregaría un cheque para if (req.secure) a su código, y rechazaría cualquier solicitud que no sea https que se le presente. (No haga esto si su programa nodejs está detrás de un proxy inverso).

Los usuarios con navegadores pueden ver todo lo que envías a tu servidor, ya sea a través de https o http. (devtools) Entonces, si al leer sus encabezados pueden descubrir cómo enviarle encabezados maliciosos, entonces alguien lo hará. Y la codificación base64 tiene exactamente la misma seguridad que ninguna codificación. Así que agrega sal y hash a tus contraseñas. Utilice el paquete bcrypt o jwts.

Manejaría los errores de esta manera, llamando a next() con un parámetro de error en lugar de usar .send() para enviar un mensaje de error. Utilice este tipo de código.

 const createError = require('http-errors') ... const myfunction (req, res, next) { ... if (!req.secure) return next(createError(403, 'https required')) ... });
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