SQL Injection - Wie Eingabe filter?

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hi, wie kann ich meine Eingaben die ich vom User bekomme richtig Filtern?

Also ich könnte natürlich mir ne Methode schreiben die da z.B. ";" rausfilter oder so.

Aber brauche ich das bei einem PreparedStatement überhaupt? (wird irgendwie im Wikipedaartikel angedeutet)

Code:
PreparedStatement pstmt = con.prepareStatement("SELECT url FROM myindex WHERE keyword LIKE '%?%");
pstmt.setString(1, var);
ResultSet rset = pstmt.executeQuery();

wenn ich also hier als String var = "eingabe"; oder einmal var = "eingabe' ;GO EXEC cmdshell('format C') --"
habe würde ja eigentlich sowas rauskommen:
Code:
SELECT url, title FROM myindex WHERE keyword LIKE '%eingabe%'
Code:
SELECT url, title FROM myindex WHERE keyword LIKE '%eingabe' ;GO EXEC cmdshell('format C') --%'

Würde dies ein PreparedStatement also verhindern?

Beispiele frei zitiert nach wikipedia ;)
http://de.wikipedia.org/wiki/SQL-Injektion
 
S

SlaterB

Gast
wenn an anderer Stelle ein solcher String korrekt maskiert abgespeicht wird,
dann wird man sich auch nicht unbedingt darüber freuen,

und vielleicht irgendwann bei anderen internen Anfragen,
die nicht Prepared sind, sein blaues Wunder erleben,


da ist etwas Filterung doch durchaus nützlich
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben