J'ai exécuté l'analyse Veracode sur mon projet et cela m'a donné un problème d'ID 113 CWE sous le fractionnement de la réponse HTTP. J'ai essayé de résoudre le problème avec leurs recommandations, mais cela n'a pas fonctionné. Par exemple, le code
res.sendRedirect(req.getContextPath() + redirectURL);
ci-dessus provient de l'un des fichiers. Et rapport indiquant une erreur à la ligne
try { String selNhid = req.getParameter("selNhid"); String redirectURL = "/nhwhoods?action=membersNH&selNhid="+selNhid; res.sendRedirect(req.getContextPath() + redirectURL); } catch (Exception e) { e.printStackTrace(); }
Des suggestions, comment résoudre le problème?
3 Réponses :
Cela peut être corrigé en utilisant la bibliothèque ESAPI 2.1.0.1 avec:
import org.owasp.esapi.ESAPI; ESAPI.httpUtilities().setHeader(response, param, value); ESAPI.httpUtilities().addCookie(response, cookie);
Que diriez-vous simplement de supprimer les séquences CRLF du paramètre redirectURL, comme le suggère le message d'erreur?
Un simple .replaceAll ("[\\ r \\ n] +", "")
devrait le faire.
Il manque un encodage d'URL pour le selNhid.
String redirectURL = "/nhwhoods?action=membersNH&selNhid=" + URLEncoder.encode(selNhid, StandardCharsets.UTF_8);
Ce qui précède suppose que vous travaillez avec UTF-8. Désormais, le contenu malveillant sera désarmé en tant que% XX octets.
qu'est-ce que vous avez essayé qui n'a pas fonctionné?