webForumDet fria alternativet

sql-fråga i koden men undvika sql-injections...

.NET

3 svar · 401 visningar · startad av inspiro

Medlem sedan sep. 2005673 inlägg
Frågan#1

Ja, som rubriken säger... hur gör man för att vara helt säker på att undvika sql-injections när man har sql-frågan i koden? Är detta säkert?

        SqlConnection myConn = new SqlConnection(...);
        SqlCommand myCommand = new SqlCommand();
        
        myConn.Open();
        myCommand.CommandText = "INSERT... " + TextBox.Text;
        myCommand.Connection = myConn;  
        myCommand.ExecuteNonQuery();
        myConn.Close();
Medlem sedan dec. 19996 721 inlägg
#2

inspiro skrev:

Ja, som rubriken säger... hur gör man för att vara helt säker på att undvika sql-injections när man har sql-frågan i koden? Är detta säkert?

Absolut inte! För att vara säker bör du använda parametriserade frågor. Det är dessutom väldigt bekvämt att koda med dessa.

Medlem sedan sep. 2005673 inlägg
#3

Hur använder man parametrar när man inte kör med stored procedures?

Medlem sedan mars 20023 561 inlägg
#4

På samma sätt som du hade gjort om du hade använt SP:s...

sql = "SELECT * FROM Customers WHERE id = @id";
cmd.Parameters.Add("@id", SqlDbType.Int, 4).Value = 2345;
273 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)