Dieser Code:Unsachgemäße Neutralization von CRLF Sequenzen ('CRLF Injection') in Mailadresse in JAVA
InternetAddress[] myAdrs = getAdrs(message.getToAddresses());
for (int i = 0; i < myAdrs.length; i++) {
String s = myAdrs[i].getAddress();
s = s.replace("\r","").replace("\n","").replace("%0A","").replace("%0a","").replace("%0D","").replace("%0d","");
InternetAddress adr = new InternetAddress(s, false);
// --> Improper Neutralization of CRLF Sequences ('CRLF Injection') (CWE ID 93)
lMessage.addRecipient(Message.RecipientType.TO, adr);
}
gibt mir immer noch die CWE-ID 93, obwohl ich alle unerwünschten Strings s mit s = s.replace entfernt (\ r .... In den Beispielen fand ich eine die Bahn die s = s.replace die Lösung sein sollte, aber ich habe immer noch diesen Fehler? Was ich? würde verpassen Sie Irgendwelche Hinweise sehr dankbar!
Aktuelle Versionen von JavaMail sollten vor CRLF-Injektion in Adressen schützen. Haben Sie dies getestet, um festzustellen, ob eine CRLF-Injektion tatsächlich möglich ist? Oder ist das nur ein falsches positives Ergebnis von einem statischen Analysetool? –
Danke für die Antwort. Ja, ich denke es ist ein "falsch positives", da ich keine InternetAdresse [] mit crlf's einfügen kann. Und überhaupt - wenn es welche gäbe, würde ich sie im Code entfernen ... Also sollte alles in Ordnung sein? Aber da der Kunde diesen Bericht "sieht", wäre es sehr gut, wenn der Fehler beseitigt wäre! Irgendein Tipp, wie man diesen Fehler definitiv loswerden kann? – Dan
Keine Ahnung. Welches Werkzeug verwenden Sie, um diese Fehler zu erkennen? Vielleicht basieren seine Regeln auf alten Versionen von JavaMail? –