damit du sql injects effizient verhinder kannst musst du erst mal sicher stellen das der userinput nicht mit nem escape(') beginnt. sql inserts beginnen typischerweise mit ' und enden mit -- (comment -> der rest wird so ignoriert)
z.B.:
- Code: Alles auswählen
'; DELETE Bla;--
für strings mal:
ein schritt kann mal sein ' zu ersetzten. z.B. so:
- Code: Alles auswählen
string cleaninput = input.Replace("'", "''");
oder aber auch mit regex prüfen dass nur buchstaben im input sein dürfen.
wenn du eine nummer eingeben lässt:
- Code: Alles auswählen
Regex re = new Regex(@"\D");
Match m = re.Match(someTextBox.Text);
if (m.Success)
{
// keine nummer
}
else
{
int intValue = int.Parse(stringValue);
if ((intValue < minValue) || (intValue > maxValue))
{
// nicht im erlaubten bereich
}
}
und dann noch Parametrisierte SQL commands(wenn das in deiner app geht.).
z.B.:
- Code: Alles auswählen
string cmdText = "SELECT * FROM irgendwas "+
"WHERE Name=@Name";
SqlCommand cmd = new SqlCommand(cmdText, connection);
cmd.Parameters.Add("@Name", SqlDbType.VarChar, 80).Value = "blubb";
*hth*, lg Eli
//edit:
ahjo welches DBMS verwendest eigentlich? sql express oder was anderes?