From d9c24e1f17dff2c7829004650aeb5ddfae3510b5 Mon Sep 17 00:00:00 2001 From: DanielRamirezGe Date: Tue, 1 Oct 2019 20:07:30 -0500 Subject: [PATCH] actualizacion de seguridad -la comilla de la muerte- --- routes/getConferencias.js | 4 +- routes/loggin.js | 12 +++- routes/registro.js | 4 +- routes/registroPersona.js | 117 +++++++++++++++++++++++++++----------- 4 files changed, 98 insertions(+), 39 deletions(-) diff --git a/routes/getConferencias.js b/routes/getConferencias.js index 85891dd..0c4ca25 100644 --- a/routes/getConferencias.js +++ b/routes/getConferencias.js @@ -9,7 +9,7 @@ app.get('/getConferencias', (req, res) => { function(error, results, fields) { if (error) { res.status(400).json({ err: true, mjs: 'error en la consulta de conferencia' }); - connection.end(); + return; } @@ -18,7 +18,7 @@ app.get('/getConferencias', (req, res) => { async(error2, results2, file2) => { if (error2) { res.status(400).json({ err: true, mjs: 'error en la consulta de conferencia' }); - connection.end(); + return; } diff --git a/routes/loggin.js b/routes/loggin.js index 59bdee7..a77ef5f 100644 --- a/routes/loggin.js +++ b/routes/loggin.js @@ -2,14 +2,20 @@ const connection = require('../conf/connection.js'); const express = require('express') const bcrypt = require('bcryptjs'); var app = express(); +var validator = require('validator'); app.post('/loggin', async(req, res) => { if (!req.body.correo || req.body.correo == "") { res.status(400).json({ error: true, msj: "faltan datos" }); return; } + let mail = await validator.isEmail(req.body.correo); + + if (!mail) { + res.status(400).json({ err: true, mjs: 'correo no valido' }); + return; + } - //console.log(req.body); connection.query(`SELECT idPersona from persona where correo = '${req.body.correo}' `, function(error, results, fields) { if (error) { @@ -18,7 +24,7 @@ app.post('/loggin', async(req, res) => { } if (results.length == 0) { - res.status(400).json({ err: true, mjs: 'Correo no registrado' }); + res.status(400).json({ err: true, mjs: 'Correo o contraseƱa invalidos' }); return; } else { @@ -37,7 +43,7 @@ app.post('/loggin', async(req, res) => { res.status(200).json({ err: false, mjs: `Bienvenid@ ${r[0].nombre}`, idPersona: r[0].idPersona }); return; } else { - res.status(400).json({ err: true, mjs: 'Datos Incorrectos' }); + res.status(400).json({ err: true, mjs: 'Correo o contraseƱa invalidos' }); return; } }); diff --git a/routes/registro.js b/routes/registro.js index 1793e1d..d9d8f64 100644 --- a/routes/registro.js +++ b/routes/registro.js @@ -5,7 +5,7 @@ var app = express() app.post('/registro', async(req, res) => { let body = req.body; - console.log(req.body); + //console.log(req.body); await body.alta.forEach(element => { connection.query(`Select capacidad from conferencia where idConferencia=${element};`, (error, results, fields) => { @@ -23,7 +23,7 @@ app.post('/registro', async(req, res) => { }); await body.alta.forEach(element => { - console.log('alta'); + // e.log('alta'); connection.query(`INSERT INTO asistencia VALUES(null,${element},${body.idPersona},false);`, (error, results, fields) => { if (error) { diff --git a/routes/registroPersona.js b/routes/registroPersona.js index 96b7940..091b71c 100644 --- a/routes/registroPersona.js +++ b/routes/registroPersona.js @@ -2,54 +2,106 @@ const connection = require('../conf/connection.js'); const express = require('express') const bcrypt = require('bcryptjs'); var app = express() +var validator = require('validator'); + app.post('/registroPersona', async(req, res) => { //console.log(req.body); var pass = await bcrypt.hash(req.body.password, 10); - console.log(pass); + //console.log(pass); + let mail = await validator.isEmail(req.body.correo); + if (!mail) { + res.status(400).json({ err: true, mjs: 'correo no valido' }); + return; + } + let aux = validator.isAlpha(validator.blacklist(req.body.nombre, ' ')); + if (!aux) { + res.status(400).json({ err: true, mjs: 'Datos incorrectos en el nombre' }); + return; + } + aux = validator.isAlpha(validator.blacklist(req.body.apellidos, ' ')); + + if (!aux) { + res.status(400).json({ err: true, mjs: 'Datos incorrectos en apellidos' }); + return; + } + + aux = validator.isAlpha(validator.blacklist(req.body.facultdad, ' -')); + + if (!aux) { + res.status(400).json({ err: true, mjs: 'Datos incorrectos en Facultad' }); + return; + } + + aux = validator.isAlpha(validator.blacklist(req.body.nombrePrograma, ' -')); + + if (!aux) { + res.status(400).json({ err: true, mjs: 'Datos incorrectos en Carrera' }); + return; + } + console.log(req.body.correo); connection.query(`SELECT * from persona where correo='${req.body.correo}'; `, async function(error, results, fields) { + console.log(results); if (error) { - res.status(200).json({ err: true, mjs: 'error en la comprobacion del correo' }); - connection.end(); + res.status(400).json({ err: true, mjs: 'error en la comprobacion del correo' }); + return; } // console.log(results.length); if (results.length == 0) { - - await connection.query(`insert into persona values (${req.body.est}, '${req.body.noCuenta}', ${req.body.promedio}, - '${req.body.nombre}', '${req.body.apellidos}', '${req.body.sexo}', ${req.body.edad}, '${req.body.correo}', - '${req.body.nivelIngles}', '${req.body.comunidad}' , '${pass}', '${req.body.facultdad}' , '${req.body.gradoAcademico}', - '${req.body.nombrePrograma}' , '${req.body.semestre}', ${req.body.titulado}, ${req.body.recibir_info} );`, - function(e, r, f) { - if (e) { - res.status(200).json({ err: true, mjs: 'error al registrar en la base' }); - connection.end(); - return; - - } - let id = 2; - connection.query(`select idPersona from persona where correo='${req.body.correo}';`, - - function(e, r, f) { - if (e) { - res.status(200).json({ - err: true, - mjs: 'error al registrar en select ' - }); - connection.end(); - return; - } - // console.log(r); - //id = r[0]; - res.status(200).json({ err: false, idPersona: r[0].idPersona, msj: 'Registro completo' }); + if (req.body.noCuenta != null) { + await connection.query(`select * from persona where noCuenta=${req.body.noCuenta};`, + async(error, results, fields) => { + if (error) { + res.status(400).json({ err: true, mjs: 'error al verificar el numero de cuenta' }); return; - }); + } + if (results.length > 0) { + res.status(400).json({ err: true, mjs: 'el numero de cuenta ya esta registrado' }); + + return; + } else { + await connection.query(`insert into persona values (${req.body.est}, '${req.body.noCuenta}', ${req.body.promedio}, + '${req.body.nombre}', '${req.body.apellidos}', '${req.body.sexo}', ${req.body.edad}, '${req.body.correo}', + '${req.body.nivelIngles}', '${req.body.comunidad}' , '${pass}', '${req.body.facultdad}' , '${req.body.gradoAcademico}', + '${req.body.nombrePrograma}' , '${req.body.semestre}', ${req.body.titulado}, ${req.body.recibir_info} );`, + function(e, r, f) { + if (e) { + res.status(400).json({ err: true, mjs: 'error al registrar en la base' }); + + return; + + } + let id = 2; + connection.query(`select idPersona from persona where correo='${req.body.correo}';`, + + function(e, r, f) { + if (e) { + res.status(400).json({ + err: true, + mjs: 'error al registrar en select ' + }); + + return; + } + // console.log(r); + //id = r[0]; + res.status(200).json({ err: false, idPersona: r[0].idPersona, msj: 'Registro completo' }); + + return; + }); + + }); + + } + + }); + } - }); } else { res.status(400).json({ err: true, mjs: 'el correo ya esta registardo' }); @@ -57,6 +109,7 @@ app.post('/registroPersona', async(req, res) => { } }); + }); module.exports = app;