Files
ENI-JSAdvanced_09/app.js
2025-12-18 15:20:06 +01:00

55 lines
1.6 KiB
JavaScript

var createError = require('http-errors');
var express = require('express');
var logger = require('morgan');
var cors = require('cors'); // Import du middleware CORS
var indexRouter = require('./routes/index');
var app = express();
app.use(logger('dev'));
app.use(express.json());
// ==========================================================
// DÉMONSTRATION A02 : MAUVAISE CONFIGURATION CORS
// ==========================================================
// --- OPTION 1 : la Vulnérabilité (A02) ---
// '*' signifie que N'IMPORTE QUEL site web sur Internet
// peut appeler votre API depuis le navigateur d'un client.
const corsOptions_VULNERABLE = {
origin: '*'
};
// --- OPTION 2 : la correction ---
// On n'autorise QUE notre front-end (penser à mettre le bon port lu après exécution de la page HTML frontend)
const corsOptions_SECURISEE = {
origin: 'http://localhost:5500' // ou 'http://127.0.0.1:5500'
};
// DÉCOMMANDEZ L'OPTION QUE VOUS VOULEZ TESTER :
//
app.use(cors(corsOptions_VULNERABLE)); // <--- Testez d'abord ceci
//
// app.use(cors(corsOptions_SECURISEE)); // <--- Testez ceci ensuite
// ==========================================================
// --- Déclaration des routes ---
app.use('/', indexRouter);
// catch 404 and forward to error handler
app.use(function(req, res, next) {
next(createError(404, 'Route non trouvée'));
});
// error handler (renvoie du JSON)
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.json({
error: {
message: err.message,
status: err.status
}
});
});
module.exports = app;