Stored Procedures og SQL Injections
Lige nu kører jeg mine stored procedures på denne måde, hvilket virker fint.public string getProjectNames(int id)
{
DataSet ds = new DataSet("Projects");
OleDbDataAdapter da = new OleDbDataAdapter("xxx.getProjectNames "+id,conn);
da.Fill(ds,"Project");
return ds.GetXml();
}
Men hvis man nu forstillede sig at min metode tog en string i stedet for en integer, ville det så ikke være muligt at lave rod i min database med "SQL injections"?
Eksemplet jeg har hvor man komme ud over dette problem i en login stored procedure der gøres således:
SqlCommand oCmd = new SqlCommand("proc", oConn);
oCmd.CommandType = System.Data.CommandType.StoredProcedure;
oCmd.Parameters.Add("@UID",SqlDbType.VarChar);
oCmd.Parameters.Add("@PWD",SqlDbType.VarChar);
oCmd.Parameters["@UID"].Value=sUser;
oCmd.Parameters["@PWD"].Value=sPass;
int iCount = (int) oCmd.ExecuteScalar();
Men jeg kan ikke umidlbart finde ud af at gøre det med en OleDbDataAdapter, så jeg senere kan fylde det ind i mit dataSet, hvor jeg kan trække resultatet ud i en XML-string.
