From b5f6e6493f38cd38726d9c998983f111a34e06dd Mon Sep 17 00:00:00 2001 From: Maxime Gosselin~ <maxime.gosselin.etu@univ-lille.fr> Date: Fri, 14 Mar 2025 09:00:15 +0100 Subject: [PATCH] Gestion de l'injection XSS lors de l'envoie d'un message --- WEB-INF/src/controleur/MessageController.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/WEB-INF/src/controleur/MessageController.java b/WEB-INF/src/controleur/MessageController.java index e21947d..a6502b5 100644 --- a/WEB-INF/src/controleur/MessageController.java +++ b/WEB-INF/src/controleur/MessageController.java @@ -9,6 +9,9 @@ import modele.dao.DaoLike; import modele.dao.DaoMessage; import modele.dto.Like; import modele.dto.Message; +import org.apache.commons.text.StringEscapeUtils; +import org.apache.commons.text.translate.CharSequenceTranslator; + import java.io.IOException; import java.time.LocalDateTime; @@ -17,6 +20,7 @@ import java.time.LocalDateTime; public class MessageController extends HttpServlet { DaoMessage daoMessage = new DaoMessage(); DaoLike daoLike = new DaoLike(); + @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String username; @@ -30,12 +34,13 @@ public class MessageController extends HttpServlet { switch (action){ case "send": - String contenue = req.getParameter("message"); + CharSequenceTranslator cst = StringEscapeUtils.ESCAPE_HTML4; + String contenu = cst.translate(req.getParameter("message")); try { int idThread = Integer.parseInt(req.getParameter("thread")); - if (contenue != null && !contenue.isEmpty()) { - Message message = new Message(0, username, idThread, contenue, LocalDateTime.now()); + if (contenu != null && !contenu.isEmpty()) { + Message message = new Message(0, username, idThread, contenu, LocalDateTime.now()); daoMessage.create(message); } vue = "thread?action=open&id=" + idThread; -- GitLab