SQL enjeksiyonu
SQL enjeksiyonu, dışarıdan gelen verinin veritabanı sorgusunun yapısını değiştirmesidir. Parametre bağlamak değerleri işler; erişim yetkisini belirlemez.
SQL enjeksiyonu, uygulamanın işlediği veriler üzerinden SQL komut parçalarının sorguya sokulmasıdır. Böyle değerler sorgu metnine eklenirse sorgunun anlamını değiştirebilir. Hangi verilerin okunabileceği veya değiştirilebileceği, kullanılan veritabanı hesabının yetkilerine de bağlıdır.
Proje filtresiyle sorgu yapısını ayırmak
Kurgusal bir destek talebi portalı proje referansına ait kayıtları arar. projectRef alanındaki değeri bağlı sorgu parametresi olarak işler: Sorgunun yapısı sabittir, değer veritabanı arayüzü üzerinden ayrı iletilir. Değer, arama verisi olarak kalmalı ve SQL sözdiziminin parçasına dönüşmemelidir.
Girdiler birleştirilerek oluşturulmuş bir sorguyu sonradan yalnızca hazırlamak bu ayrımı sağlamaz. Daha önce saklanmış veriler veya başka sistemlerden gelen değerler de sonraki sorgu oluşturulurken incelenmeden SQL metnine dönüştürülmemelidir.
Değerleri bağlamak, yapıyı sabit tutmak
sortKey gibi sıralama alanı farklı bir durumdur. Veri değerleri için kullanılan yer tutucular, istenen sütun adının veya sıralama yönünün yerine geçmez. Bu nedenle uygulama, bilinen seçimleri kodda sabit olarak belirlenen sütun ve yönlerle eşler. OWASP, parametre bağlama ile izin verilen yapısal seçimlerin bu ayrımını açıkça anlatır.
Parametre bağlama, oturum açmış kişinin istenen projeye erişme yetkisini de kontrol etmez. Bu yetki denetimi uygulamanın sorumluluğundadır. Yetkileri ihtiyaçla sınırlanmış bir veritabanı hesabı olası zararı azaltabilir; güvenli olmayan sorgu oluşturma biçimini ortadan kaldırmaz.
Kaynaklar
İlgili terimler
- VeritabanıYazılımın belirli verilere erişip değişiklik uygulayabildiği düzenlenmiş veri koleksiyonu.
- SQLVeriyi tanımlamak, sorgulamak ve değiştirmek için kullanılan dil; tek bir veritabanı ürünü değildir.
- Nesne ilişkisel eşlemeProgramdaki nesneleri ilişkisel veritabanındaki verilerle eşlemek.
- Veri minimizasyonuVeri minimizasyonu, kişisel verileri belirli amaç için uygun, ilgili ve gerekli olan kapsamla sınırlar.
- Veri saklama politikasıVeri saklama politikası, saklamanın amacını, başlangıcını, süresini ve sonunu belirler. Silme işleri ve kopyalar teknik olarak ele alınmalıdır.
- Zarf şifrelemeZarf şifreleme, veri anahtarını onu koruyan anahtardan ayırır. Şifreli dosya ile paketlenmiş veri anahtarı birlikte ele alınmalıdır.
Projeniz ASES ile
Projenizi bize anlatın. İlk değerlendirmemizle size dönelim.