Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Какво представлява предаването на параметри към SQL и защо ми е необходимо?

Предаването на параметри към SQL ви спестява от необходимостта да създавате динамичен SQL низ.

Създаването на динамични SQL изрази е ОГРОМЕН риск за сигурността, тъй като хората могат да инжектират свой собствен SQL код във вашето приложение, като е възможно да изпълняват нежелани команди срещу вашите данни.

Има някои добри примери за възможни атаки с инжектиране на SQL на адрес:

Атаки с инжектиране на SQL чрез пример

Има два начина за предаване на параметри към SQL изрази. Едната е да използвате съхранени процедури, както споменахте. Другият е да използвам параметризирани заявки (което всъщност е това, което предпочитам).

Параметризирана заявка всъщност е доста лесна в .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);
}

В този пример параметърът беше @Username и използвахме Parameters колекция от SqlCommand обект за предаване на стойността.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2008 Ред вмъкване и актуализиране на времеви печати

  2. Външен ключ към композитен ключ

  3. Задайте опция 9 в съхранената процедура на SQL Server, като използвате WinHttp.WinHttpRequest.5.1 за TLS 1.2

  4. Конфигурации с обхват на базата данни на SQL Server и автоматична корекция на план

  5. Как да търсите низ в бази данни на SQL Server