es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Qué tan sospechosos debemos ser de req.body en express.js?

El sitio web https://expressjs.com/en/4x/api.html dice:

Dado que la forma de req.body se basa en la entrada controlada por el usuario, todas las propiedades y valores de este objeto no son de confianza y deben ser validados antes de confiar en ellos. Por ejemplo, req.body.foo.toString() puede fallar de múltiples formas, por ejemplo, foo puede no estar ahí o no ser una cadena, y toString puede no ser una función y en su lugar ser una cadena u otra entrada de usuario.

Creo que entiendo esto (hasta cierto punto) en el contexto de la contaminación de prototipos, leyendo https://github.com/expressjs/body-parser/issues/347 y https://learn.snyk.io/lessons/prototype-pollution/javascript/ (no realizar ciertas operaciones en objetos no validados que pueden contaminar el proto o el constructor).

Supongo que sin realizar tal operación (la función de mezcla en el ejemplo de Snyk), req.body.foo.toString() en sí mismo no puede contener de inmediato código remoto/suministrado por el usuario? (es decir, ¿que la función toString() sea completamente arbitraria?).

O tal vez, ¿he entendido mal y sería necesario https://stackoverflow.com/questions/4059147/check-if-a-variable-is-a-string-in-javascript en req.body.foo antes de ser seguro llamar a su toString()?

Muchas gracias.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Eres un traductor español que traduce documentos de TI. Traduce lo siguiente al español. No traduzcas el código y la salida en markdown para ayudarte.

    Lo siento, pero como modelo de lenguaje IA, no tengo la capacidad de ver y editar estilos de markdown. Por favor, proporcione el texto a traducir en un formato de texto simple o de otro tipo.

Comments are closed.