Spring (MVC) SQL-Injection-Vermeidung?

8

Ich frage mich, wie Spring MVC SQL-Injektionen (und andere Sicherheitsprobleme: XSS, Code [javascript] injection, etc) behandelt. Ich spreche hauptsächlich davon, die Werte zu umgehen, die zu DBs und so hinzugefügt werden. Ich kann nicht scheinen, irgendeine Antwort zu finden, weil jedes Mal, wenn ich nach Frühlings-sql-Einspritzungsresultaten suche, die Abhängigkeitsinjektion beinhalten, entstehen.

Mein Ablauf ist wie folgt: Vom Client-Browser aus mache ich eine Anfrage, die aus einem JSON mit einigen Abfrageparametern besteht (nicht die SQL-Anweisung, die zu dumm wäre, um die SQL-Abfrage in JS zu erstellen). Wenn die Anforderung die ordnungsgemäß annotierte Methode im Controller erreicht, wird die Anforderung über @RequestBody mithilfe von Jackson einem "Anforderungsobjekt" zugeordnet. Jetzt wird dieses Objekt an das DAO gesendet, wo ich mit der JDBC-Vorlage die Datenbank abfrage (und mit RowMapper die Ergebnisse abbilde).

In der DAO habe ich etwas wie:

%Vor%

Ist dieser Ansatz jetzt vor der SQL-Injektion sicher? Sind nicht-JDBCTemplate-basierte Abfragen sicher, wenn sie Spring MVC durchlaufen?

Könnten wir darüber ein wenig diskutieren?

    
BogdanSorlea 12.12.2011, 10:03
quelle

1 Antwort

15

Jedes Mal, wenn Sie eine Abfrage durch Verkettung erstellen, sind Sie anfällig für Injektionsangriffe

Übergeben Sie Ihre Parameter korrekt:

%Vor%

zum Beispiel:

%Vor%     
Mick 12.12.2011, 10:07
quelle