Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Защита от SQL-инъекций: безопасное использование оператора LIKE в ADO.NET

Delphi , Базы данных , ADO

SQL-инъекции представляют собой одну из наиболее распространенных угроз безопасности при работе с базами данных. Эта угроза возникает, когда злоумышленник может вставлять и выполнять произвольные SQL-команды через входные данные, которые ожидает ваше приложение. Особенно это касается запросов, использующих оператор LIKE, который часто применяется для поиска по тексту.

Вот пример запроса, который может быть уязвим для SQL-инъекций:

SELECT * FROM suppliers WHERE supplier_name LIKE '%' + name + '%';

Чтобы защититься от SQL-инъекций, необходимо использовать параметризованные запросы. Это означает, что вместо конкатенации строк с переменными, которые могут содержать вредоносный код, следует передавать эти переменные как параметры, которые будут обработаны системой управления базами данных.

Пример безопасного параметризованного запроса:

string name = "имя_поставщика"; // предположим, что это входные данные
string query = "SELECT * FROM suppliers WHERE supplier_name LIKE '%' + @name + '%'";

using (SqlCommand command = new SqlCommand(query, connection))
{
    command.Parameters.AddWithValue("@name", name);
    // Остальная часть кода для выполнения запроса
}

Важно, что даже если входная строка будет содержать вредоносный код, например, '' OR true --, благодаря параметризации система не выполнит его как часть SQL-запроса.

Дополнительный пример с использованием Object Pascal (Delphi):

var
  SearchTerm: string;
begin
  SearchTerm := 'имя_поставщика';
  with TSqlQuery.Create(Connection) do
  try
    Query.Add('SELECT * FROM suppliers WHERE supplier_name LIKE :SearchTerm');
    Params.Add('SearchTerm', '%' + SearchTerm + '%');
    // Остальная часть кода для выполнения запроса
  finally
    Free;
  end;
end;

В этом примере используется компонент TSqlQuery, который предоставляет удобный способ параметризации запросов.

Важные замечания:

  • Всегда используйте параметризованные запросы для предотвращения SQL-инъекций.
  • При работе с текстовыми данными, используйте параметры типа String.Format для корректного обрамления значений в проценты, что необходимо для оператора LIKE.
  • Не забывайте про очистку и утилизацию компонентов после их использования, чтобы избежать утечек памяти.

Следуя этим рекомендациям, вы сможете защитить свои приложения, написанные на Object Pascal и работающие с базами данных, от угроз SQL-инъекций.

Создано по материалам из источника по ссылке.

Защита от SQL-инъекций при использовании оператора LIKE в ADO.NET достигается через параметризацию запросов, что предотвращает возможность выполнения вредоносного кода в базе данных.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: ADO ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-03-13 21:05:52/0.0033831596374512/0