2015-07-29 2 views
5

Ich möchte den SpEL zur Auswertung einiger Benutzereingaben verwenden. Aber das öffnet eine Sicherheitslücke, weil der SpEL-Engine auch Code ausführt und Klassen starten und auf statische Objekte zugreifen kann. Zum Beispiel verlässt T (System) .exit (0) das System.Spring EL (SpEL) Codeausführung

Ist es möglich, diese Art von Code Ausführungen zu verhindern?

Antwort

0

Um dies zu vermeiden, sollten Benutzereingaben niemals in der Ausdruckssprache ausgewertet werden.

Sie werden praktisch nie in der Lage sein, alle möglichen "schlechten" Codes auszuführen.

Stattdessen können Sie Benutzereingaben als Umgebungsvariablen (Strings, Zahlen) mit festen EL-Ausdrücken verwenden.