Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah SQLCommand dalam C# mencegah serangan suntikan SQL?

Bagaimanakah SQLCommand dalam C# mencegah serangan suntikan SQL?

Linda Hamilton
Linda Hamiltonasal
2025-02-03 02:16:13299semak imbas

How Can SqlCommand in C# Prevent SQL Injection Attacks?

Mengamankan C# Aplikasi dari SQL Suntikan Serangan

Suntikan SQL adalah ancaman keselamatan yang serius yang membolehkan penyerang memanipulasi pertanyaan pangkalan data, yang berpotensi membawa kepada pelanggaran data. Untuk mengurangkan risiko ini dalam aplikasi C# berinteraksi dengan pangkalan data SQL, menggunakan pertanyaan parameter dengan

adalah yang paling utama. SqlCommand

Kelas

, apabila digunakan dengan betul, menawarkan pertahanan yang kuat terhadap suntikan SQL. Koleksi parameternya secara automatik mengendalikan pengesahan dan penukaran jenis data, mengeluarkan keperluan untuk sanitisasi input manual, sumber kerentanan yang sama. SqlCommand

inilah contoh ilustrasi:

<code class="language-csharp">private static void UpdateDemographics(Int32 customerID, string demoXml, string connectionString)
{
    // Update store demographics stored in an XML column.
    string commandText = "UPDATE Sales.Store SET Demographics = @demographics WHERE CustomerID = @ID;";

    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        SqlCommand command = new SqlCommand(commandText, connection);
        command.Parameters.Add("@ID", SqlDbType.Int).Value = customerID;
        command.Parameters.AddWithValue("@demographics", demoXml); // Implicit XML conversion by SQL Server

        try
        {
            connection.Open();
            Int32 rowsAffected = command.ExecuteNonQuery();
            Console.WriteLine($"RowsAffected: {rowsAffected}");
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
    }
}</code>
Coretan kod ini menunjukkan penggunaan parameter

dan @ID dalam @demographics. Nilai diluluskan sebagai parameter, menghalang suntikan SQL langsung. SQL Server mengendalikan penukaran tersirat dari rentetan ke XML. SqlCommand

Dengan menggunakan pertanyaan parameter dengan

, pemaju menghapuskan risiko yang berkaitan dengan input pengguna secara manual. Pendekatan ini menyediakan kaedah yang mantap dan cekap untuk melindungi aplikasi C# dari kelemahan suntikan SQL. Ini memastikan integriti data dan melindungi daripada akses yang tidak dibenarkan. SqlCommand

Atas ialah kandungan terperinci Bagaimanakah SQLCommand dalam C# mencegah serangan suntikan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn