var express = require('express'); var router = express.Router(); var db = require('../db/database'); // Importe notre BDD /* POST /login - Version SÉCURISÉE */ router.post('/login', function(req, res, next) { const { username, password } = req.body; // == LA CORRECTION (Requête préparée) == // On utilise des placeholders (?) pour les variables. const sqlQuery = "SELECT * FROM users WHERE username = ? AND password = ?"; const params = [username, password]; // Les valeurs sont passées dans un tableau console.log("Requête SÉCURISÉE préparée :", sqlQuery); console.log("Valeurs :", params); // Le driver (sqlite3) va "assainir" les entrées. // L'injection ' OR 1=1 sera traitée comme une simple chaîne de texte // et non comme du code SQL. db.get(sqlQuery, params, (err, row) => { if (err) { // Transmet l'erreur au gestionnaire d'erreurs d'Express return next(err); } if (row) { res.json({ message: `(Sécurisé) Connexion réussie ! Bonjour, ${row.username} (rôle: ${row.role})` }); } else { res.status(401).json({ message: "(Sécurisé) Échec de la connexion." }); } }); }); module.exports = router;