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.