foo_1337 schrieb:
Wie selten siehst du Tomcat/Jetty/Jboss/Wildfly Webapps an?
Tomcat ist nicht betroffen, Wildfly (Full) ist nicht betroffen. Ich bezweifle, dass sie für Webapps ein eigenes Logsystem geschrieben haben. Jetty nutzt augenscheinlich Slf4j und da ist log4j nicht die Standard-Implementierung drunter.
Hast Du Nachweise dafür, dass auch nur eines der drei von Dir genannten Systeme im Standard auf log4j setzt? (JBoss ist die kommerzielle Ausgliederung von Wildfly)
Sannyboy111985 schrieb:
Vielleicht ist ja der ein oder andere Entwickler anwesend, der ein real live Beispiel für solche lookups hat.
Ich bezweifle, dass Dir da jemand was sinnvolles nennen kann. Es gibt keinen Grund, beim Logging dynamisch irgendwelche Lookups zu machen oder sonstwie Code von extern reinzuladen.
Wenn man solche ausgefuchsten Anforderungen hat, dann macht man das hintenraus, zum Beispiel, indem man die Nachrichten mit Logstash nachbearbeiten lässt oder statt auf Platte nach Kafka transportiert oder einen andersgearteten zentralen Logserver benutzt.
Oberstes Prinzip bei Software Design ist "ein Tool, ein Job". Der Job der Fachanwendung ist es, fachliche Anforderungen abzudecken. Alles, was Du an Aufbereitung der Lognachrichten machen musst, machst Du nachgelagert.
Das ist nicht nur ne Frage bezüglich dieser Sicherheitslücke. Sagen wir, Dein Anwendungsfall braucht eine Nachbearbeitung mit dynamisch nachgeladenen Code. Per Default passiert (mit allen mir bekannten Frameworks) das Logging im selben Thread, in dem auch Deine Anwendung läuft. Wenn das Logging auf einen Fehler läuft, kann das Deine Fachanwendung töten. Das ist der worst case - eine "unwichtige" Sekundärfunktion reißt Deine Anwendung in den Abgrund. Das ist so das Niveau:
"Entschuldigen Sie bitte, Amazon ist derzeit nicht verfügbar, weil eine Funktion zur hübscheren Formattierung von Zahlen grade nicht zur Verfügung steht. Kommen Sie in einer Stunde nochmal vorbei"
Jeder, der beim Implementieren halbwegs seine Sinne beisammen hat, macht im fachlichen Prozess
nichts, was in die Grütze gehen kann und nicht unmittelbar zwingend notwendig ist. Pretty-Printing kann man
immer ex-Post machen.