diff --git a/Middlewares/inputValidationMiddleware.js b/Middlewares/inputValidationMiddleware.js
index 5571996..2bb2200 100644
--- a/Middlewares/inputValidationMiddleware.js
+++ b/Middlewares/inputValidationMiddleware.js
@@ -171,7 +171,8 @@ const inputValidationMiddleware = (req, res, next) => {
if (req.body && typeof req.body === 'object') {
const bodyStr = JSON.stringify(req.body);
if (suspiciousPatterns.some(pattern => pattern.test(bodyStr))) {
- logger.warn(`Suspicious input detected in request body from ${req.ip}: ${req.path}`);
+ logger.warn(`Suspicious input blocked in request body from ${req.ip}: ${req.path}`);
+ return res.status(400).json({ error: 'Input invalide détecté.' });
}
}
@@ -179,11 +180,11 @@ const inputValidationMiddleware = (req, res, next) => {
if (req.query && typeof req.query === 'object') {
const queryStr = JSON.stringify(req.query);
if (suspiciousPatterns.some(pattern => pattern.test(queryStr))) {
- logger.warn(`Suspicious input detected in query params from ${req.ip}: ${req.path}`);
+ logger.warn(`Suspicious input blocked in query params from ${req.ip}: ${req.path}`);
+ return res.status(400).json({ error: 'Input invalide détecté.' });
}
}
- // Continuer sans bloquer (logging only pour ne pas casser l'app)
next();
} catch (error) {
logger.error('Error in input validation middleware:', error);
diff --git a/package.json b/package.json
index c1c0cfb..1e085a1 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@cdn-app/insider-myaxrin-labs-dinawo",
- "version": "1.2.2-beta",
+ "version": "1.2.3-beta",
"description": "",
"main": "server.js",
"scripts": {
diff --git a/public/js/dashboard.js b/public/js/dashboard.js
index 2459df8..f932919 100644
--- a/public/js/dashboard.js
+++ b/public/js/dashboard.js
@@ -1,4 +1,10 @@
// Dashboard JavaScript - Version corrigée
+
+function escapeAttr(str) {
+ if (typeof str !== 'string') return '';
+ return str.replace(/&/g, '&').replace(/'/g, ''').replace(/"/g, '"').replace(//g, '>');
+}
+
document.addEventListener('DOMContentLoaded', function() {
// Initialisation générale
initializeDashboard();
@@ -682,10 +688,10 @@ function createCollaborationModal(itemName, itemType, data) {
? data.activeUsers.map(user => `
-
})
+ onerror="this.src='${escapeAttr(getDefaultAvatar(user.name))}'">
@@ -696,8 +702,8 @@ function createCollaborationModal(itemName, itemType, data) {
-
@@ -794,10 +800,10 @@ function searchCollabUser(username, itemName, itemType, modal) {
-
})
+ onerror="this.src='${escapeAttr(getDefaultAvatar(result.user.name))}'">
${result.user.name}
@@ -807,8 +813,8 @@ function searchCollabUser(username, itemName, itemType, modal) {
-