Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah saya dapat mengelakkan kelemahan suntikan SQL dalam aplikasi C# saya?

Bagaimanakah saya dapat mengelakkan kelemahan suntikan SQL dalam aplikasi C# saya?

Susan Sarandon
Lepaskan: 2025-02-03 02:11:09
asal
960 orang telah melayarinya

How Can I Prevent SQL Injection Vulnerabilities in My C# Applications?

Memperbaiki C# Aplikasi Terhadap SQL Suntikan Serangan Keselamatan data adalah kritikal dalam pembangunan aplikasi, dan suntikan SQL tetap menjadi kelemahan utama. Panduan ini menggariskan kaedah yang terbukti untuk melindungi aplikasi C# anda dari serangan ini.

Langkah asas adalah pengesahan input yang ketat. Menggunakan ungkapan biasa atau fungsi C# asli, anda boleh menguatkuasakan format input yang ketat. Sebagai contoh, medan e -mel boleh dihadkan kepada struktur "@domain.com". Ini menghalang watak -watak yang berpotensi berbahaya daripada menyusupkan pertanyaan SQL.

Strategi yang lebih mantap melibatkan pertanyaan parameter dan kelas

. Teknik ini dengan bersih memisahkan input pengguna dari pernyataan SQL itu sendiri, meninggalkan pengendalian jenis dan penapisan ke enjin pangkalan data.

objek dicipta, nilai yang diberikan, dan kemudian diintegrasikan ke dalam pertanyaan. SqlCommand SqlParameter Contoh ilustrasi:

Pertanyaan parameternya dengan ketara mengurangkan risiko suntikan SQL. Pangkalan data merawat parameter sebagai data, bukan kod yang boleh dilaksanakan, menghapuskan keperluan sanitisasi manual dan menawarkan perlindungan yang kuat terhadap input berniat jahat.
using System.Data;
using System.Data.SqlClient;

private static void UpdateDemographics(int customerID, string demoXml, string connectionString)
{
    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);
        command.Parameters["@ID"].Value = customerID;

        command.Parameters.AddWithValue("@demographics", demoXml);

        try
        {
            connection.Open();
            int rowsAffected = command.ExecuteNonQuery();
            Console.WriteLine("RowsAffected: {0}", rowsAffected);
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
    }
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah saya dapat mengelakkan kelemahan suntikan SQL dalam aplikasi C# saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan