Я пытался адаптировать свой код к правилам FxCop и обнаружил это предупреждение: CA2100 Просмотрите строку запроса, переданную в «OleDbDataAdapter.OleDbDataAdapter(string, OleDbConnection)» в «WavesShaperNew.Parse(string, int)» на предмет возможных атак путем внедрения SQL. . Если строка составлена с использованием любого пользовательского ввода, рассмотрите возможность использования хранимой процедуры или параметризованного SQL-запроса вместо создания запроса с конкатенацией строк.
Я провел поиск на официальном сайте Microsoft и подобные вопросы, но так и не понял, что означает это предупреждение и как его решить.
ComboBox sheets = new ComboBox();
TextBox startRange = new TextBox();
TextBox endRange = new TextBox();
string query = string.Format("SELECT * FROM[" + sheets.SelectedItem + startRange.Text + ":" + endRange.Text + "]");
query = query.Replace("'", "");
OleDbDataAdapter adapter = new OleDbDataAdapter(query, con);
SELECT * FROM customers; delete from customers; blah blah blah
Вы только что потеряли всех своих клиентов... Когда вы обнаружите, что конструируете параметры из пользовательского ввода и необработанного sql, вы только что открыли себе мир боли. Исправление состоит в том, чтобы ВСЕГДА использовать параметризованные запросы. - person TheGeneral   schedule 20.08.2020