Estoy usando Node.js y Express-Validator para validar el lado del servidor de entrada del usuario. La forma que estoy controlando es fácil de validar, asegurando que se cumplan las restricciones como "isInt" e "isFloat", "isBoolean" etc.
Supongo que también debo comprobar el encabezado de autorización. Se envía en el formulario de inicio de sesión como autenticación básica, a través del encabezado de autorización. Así que el encabezado tiene este aspecto, por ejemplo:
Basic dGhhbmtzZm9ydGFraW5nOnRpbWVoZWxwaW5nbWU6KQ==
Utilizando enlace Realmente agradecería cualquier ayuda sobre la estrategia para validar la entrada aquí.
Para extraer el nombre de usuario y la contraseña que utilizo
var auth = require('basic-auth'); //and
var info = auth(req); //getting info.user and info.pass
También tengo curiosidad por si esto hace alguna validación de entrada por defecto. La documentación de basic-auth dice
auth (req) Obtenga las credenciales básicas de autenticación de la solicitud dada. los El encabezado de autorización se analiza y si el encabezado no es válido, no está definido se devuelve, de lo contrario un objeto con nombre y propiedades de paso.
No estoy seguro de qué significa esto: no es válido de qué manera, etc. Sería bueno si esto hace suficiente validación en sí mismo, pero lo dudo.
La pregunta principal es cómo "limpiar" esto de los ataques de inyección y los scripts. Está codificado en base64, así que supongo que tendría que decodificarlo y luego limpiarlo. Pero tal vez eso plantea algún riesgo en sí mismo?
Cualquier ayuda sobre cómo abordar esto sería muy apreciada.