sql >> Database teknologi >  >> RDS >> Sqlserver

Hvad sender parametre til SQL, og hvorfor har jeg brug for det?

Ved at overføre parametre til SQL slipper du for at skulle bygge en dynamisk SQL-streng.

At bygge dynamiske SQL-sætninger er en KÆMPE sikkerhedsrisiko, fordi folk kan injicere deres egen SQL-kode i din applikation og muligvis udføre uønskede kommandoer mod dine data.

Der er nogle gode eksempler på mulige SQL Injection-angreb på:

SQL-injektionsangreb efter eksempel

Der er to måder at overføre parametre til SQL-sætninger. Den ene er at bruge Stored Procedures som du nævnte. Den anden er at bruge parametriserede forespørgsler (hvilket faktisk er det, jeg foretrækker).

En parameteriseret forespørgsel er faktisk ret let i .NET:

using(SqlConnection conn = new SqlConnection(connString))
{
    SqlCommand command = 
        new SqlCommand("SELECT * FROM Users WHERE Username = @Username", conn);

    command.Parameters.Add(new SqlParameter("@Username", "Justin Niessner"));

    SqlDataAdapter adapter = new SqlDataAdapter(command);
    DataTable dt = new DataTable();

    adapter.Fill(dt);
}

I dette eksempel var parameteren @Username og vi brugte Parameters samling af SqlCommand objekt for at sende værdien.



  1. jeg har en Android app, der henter data fra sqlite og viser dataene i BaseAdapter .. hvad er den bedste måde ??

  2. Hvordan undslipper man komma og dobbelt anførselstegn på samme tid for CSV-fil?

  3. udfører datetime-relaterede operationer i PHP

  4. Benchmarking databaser 101 - del 1