Antwort

9

Ja, tut es.

Sowohl die Kriterien-API als auch die Abfrageparameter in HQL oder JPQL umgehen die Parameter und führen kein schädliches SQL aus.

Die Sicherheitsanfälligkeit wird nur angezeigt, wenn Sie die Parameter einfach in Ihre Abfrage verketten. Dann wird jedes schädliche SQL Teil Ihrer Abfrage.

BEARBEITEN Der OWASP verfügt über eine . Die Verwendung von Kriterienabfragen entspricht der Verteidigungsoption 1: vorbereitete Anweisungen verwenden.

+0

was ist die Schlussfolgerung. Schützt die Kriterien-API meine Websites vollständig vor SQL-Injection? –

+1

@ яєη נ ιтн.я Entschuldigung dafür, dass das Ergebnis nicht eindeutig ist. Ja tut es. – kostja

+3

@ яєη נ ιтн.я was Sie tatsächlich vor SQL-Injection schützt, sind die 'Statements', die mit Criteria, HQL oder sogar reinem JDBC verwendet werden, wenn Sie es richtig verwenden. Die Schlussfolgerung lautet: Verknüpfen Sie String nicht, um Ihre Abfrage zu erstellen. Verwenden Sie die API. –