Jak uniknąć prostych zapytań SQL w języku C# dla SQLServer?

Korzystam z interfejsu API, który oczekuje ciągu SQL. Pobieram dane wejściowe użytkownika, uciekam i przekazuję je do interfejsu API. Wprowadzanie danych przez użytkownika jest dość proste. Pyta o wartości kolumn. Tak jak:

string name = userInput.Value;

Następnie tworzę zapytanie SQL:

string sql = string.Format("SELECT * FROM SOME_TABLE WHERE Name = '{0}'",
                           name.replace("'", "''"));

Czy to jest wystarczająco bezpieczne? Jeśli tak nie jest, czy istnieje prosta funkcja biblioteki, która zapewnia bezpieczeństwo wartości kolumn:

string sql = string.Format("SELECT * FROM SOME_TABLE WHERE Name = '{0}'",
                           SqlSafeColumnValue(name));

Interfejs API używa SQLServer jako bazy danych.

1 odpowiedź

Po prostu zamień „z” (to dwa pojedyncze cudzysłowy, a nie jeden podwójny cudzysłów) w literałach łańcuchowych. To tyle.

Twoja odpowiedź

Zaloguj się aby odpowiedzieć.

Operiada

Operiada to polskojęzyczne forum informatyczne działające na zasadzie pytań i odpowiedzi.

Obserwowane tagi

Zaloguj się aby obserwować tagi.