SQL Injection Nedir?
SQL Injection Nedir?

SQL Injection, kötü niyetli bir kullanıcının, SQL sorgusuna dışarıdan müdahale ederek veri çalması, silmesi veya sistemi bozmasıdır.

Yani kullanıcıdan genel veri, doğrudan sorguya eklenirse güvenlik açığı oluşur.

SQL Injection’a C# ile SQL Örneği

Aşağıdaki örneği referans alarak anlamaya çalışalım.

string productName = txtProductName.Text; // kullanıcıdan gelen veri
string query = "SELECT * FROM Table_Product WHERE ProductName = '" + productName + "'";

SqlCommand cmd = new SqlCommand(query, conn);
SqlDataReader reader = cmd.ExecuteReader();

Eğer kullanıcı productName yerine şu değeri girerse:

' OR '1'='1

O zaman oluşan sorgu şu hale gelir:

SELECT * FROM Table_Product WHERE ProductName = '' OR '1'='1'

Bu da tüm ürünleri getirir, çünkü 1=1 her zaman doğrudur.

Daha Tehlikelisi

Kullanıcı şu değeri girerse:

'; DROP TABLE Table_Product; --

Sorgu şu hale gelir:

SELECT * FROM Table_Product WHERE ProductName = ''; DROP TABLE Table_Product; --'

Bu durumda:

  • İlk sorgu çalışır ama sonuç getirmez.
  • İkinci komut, tüm tabloyu siler!

Güvenli Kullanım: @parametre + AddWithValue

Yukarıdaki güvenlik açığını şu şekilde kapatabiliriz:

SqlCommand cmd = new SqlCommand("SELECT * FROM Table_Product WHERE ProductName = @productName", conn);
cmd.Parameters.AddWithValue("@productName", productName);

Bu kullanımda:

  • Kullanıcının girdiği veri, sorguya doğrudan eklenmez.
  • SQL Server, gelen değeri bir parametre olarak işler, komutun kendisi olarak değil.

Özetle

  • Parametresiz sorgular tehlikelidir.
  • @parametre + AddWithValue, SQL Injection saldırılarına karşı en etkili koruma yollarından biridir.

C# ile SQL CRUD İşlemleri başlıklı blog yazıma da göz atmak isteyebilirsiniz.

SQL Injection konusunu ele almaya çalıştım. Bu içerik benim için sürekli referans olacak ve elimden geldiğince güncellemeye çalışacağım. İçeriğe katkı sağlamak isterseniz, yorum yazmaktan çekinmeyiniz.

Gönderilere yorum yazabilir, linkedin veya @huseyineskan instagram hesabımdan benimle iletişime geçebilirsiniz.

Yazılım kategorisine buradan göz atabilirsiniz.