15 1 0 4000 1 https://haktanbozer.com.tr 300

SQL Enjeksiyonu Nedir?

SQL enjeksiyonu, web uygulamalarında ve veritabanı tabanlı sistemlerde sık rastlanan bir siber güvenlik saldırı yöntemidir. Bu saldırı türü, kötü niyetli saldırganların bir web sitesi veya uygulama üzerinden kötü amaçlı SQL kodlarını enjekte ederek veritabanına erişim sağlamalarını amaçlar. SQL enjeksiyonları, güvenlik açıklarının sömürülmesi yoluyla gerçekleştirilir ve ciddi veri sızıntısı ve sistem yetkilerinin ele geçirilmesine yol açabilir. Bu yazıda, SQL enjeksiyonu nedir, nasıl çalışır ve nasıl korunulabileceği ele alınacaktır.

 

SQL Enjeksiyonu Nedir?

SQL enjeksiyonu, web uygulamalarında kullanılan SQL sorgularına, zararlı SQL kodlarının eklenmesi veya manipüle edilmesi yoluyla gerçekleştirilen bir siber saldırı türüdür. Bu tür saldırılar, web uygulamalarının güvenlik açıklarını kullanarak saldırganların veritabanına yetkisiz erişim sağlamalarını mümkün kılar. Saldırganlar, SQL enjeksiyonunu kullanarak veritabanından gizli verileri çalabilir, veritabanını silip bozabilir veya yetkilerini artırabilir.

 

SQL Enjeksiyonu Nasıl Çalışır?

SQL enjeksiyonları, web uygulamalarında kullanılan giriş alanlarını hedef alır. Kullanıcıların web sitesine giriş yaparken veri girişi yapabileceği formlar, URL parametreleri veya çerezler gibi alanlar, enjeksiyon için kullanılan hedefler olabilir. Saldırganlar, bu giriş alanlarına zararlı SQL kodları ekleyerek, uygulamanın SQL sorgularını değiştirir ve veritabanını manipüle eder.

 

Örneğin, bir web sitesinde kullanıcı adı ve şifreyle giriş yapmak için bir form olsun. Normalde, kullanıcı adı ve şifre, uygulama tarafından doğrulanmak üzere SQL sorgusuna eklenir. Ancak, bir saldırgan, kullanıcı adı alanına şu şekilde bir giriş yaparak bir SQL enjeksiyonu gerçekleştirebilir:

Kullanıcı adı: ' OR '1'='1
Şifre: (Herhangi bir şifre girilebilir, çünkü SQL enjeksiyonunda şifre kontrolü atlanacaktır.)

Bu giriş, SQL sorgusunun aşağıdaki gibi değiştirilmesine yol açar:

SELECT * FROM kullanıcılar WHERE kullanıcı_adı = '' OR '1'='1' AND şifre = '<girilen şifre>';

Bu sorgu, her zaman doğru sonuç döndürdüğünden, saldırgan doğru kullanıcı adı ve şifre girmemiş olsa bile uygulamanın onay vereceğini düşünerek oturum açmış gibi olur.

 

SQL Enjeksiyonundan Nasıl Korunulur?

SQL enjeksiyonlarından korunmak için aşağıdaki adımlar alınmalıdır:

  • Parametreli Sorgular: SQL sorguları için parametreli sorgular kullanmak, enjeksiyon riskini azaltır. Parametreler, kullanıcı girişi verilerini temizleyerek sorguya eklenir ve otomatik olarak kod enjeksiyonunu önler.
  • Veri Doğrulama ve Filtreleme: Kullanıcı girişleri doğrulanmalı ve filtrelenmelidir. Yalnızca beklenen veri türlerine izin vermek ve girişleri temizlemek, enjeksiyon saldırılarını önlemeye yardımcı olur.
  • Güvenlik Duvarları: Web uygulamalarında güvenlik duvarları kullanmak, zararlı girişleri engellemeye yardımcı olur.
  • Güncel Yazılımlar: Web uygulamalarının ve veritabanlarının güncel olduğundan emin olmak, bilinen güvenlik açıklarının giderilmesine yardımcı olur.

 

Kaynakça

  1. SQL Injection. [https://owasp.org/www-community/attacks/SQL_Injection]
  2. SQL Injection Prevention Cheat Sheet. [https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html]
  3. A Guide to SQL Injection. [https://www.varonis.com/blog/sql-injection/]
Paylaş:
Ulam:Nedir?
Önceki Yazı
CRLF Nedir?
Sıradaki Yazı
SEG 32SD5150 Kullanım Kılavuzu