Çerez Kullanımı

Bu web sitesi, deneyiminizi iyileştirmek ve site kullanımını analiz etmek için çerezler kullanmaktadır. Gizlilik Politikası sayfamızdan detaylı bilgi alabilirsiniz. Çerezleri kabul ederek, KVKK kapsamında verilerinizin işlenmesine onay vermiş olursunuz.

Samet Karabulut - Web Uygulamalarında SQL Injection Koruması
#SIBERGüVENLIK #YAZıLıM #WORDPRESS #PHP #NODE.JS #CSS #GüVENLIK

Web Uygulamalarında SQL Injection Koruması

Samet Karabulut

January 27, 2026

3 min read

Web Uygulamalarında SQL Injection Koruması

Web uygulamalarında veritabanı güvenliği oldukça önemlidir. Veritabanlarına yapılan saldırılardan biri de SQL injectiondır. SQL injection, saldırganların veritabanına zararlı komutlar göndererek veri güvenliğini tehlikeye sokmalarına neden olur. Bu yazıda, SQL injection nedir, nasıl çalışır ve web uygulamalarında SQL injection korumayı nasıl sağlayabiliriz bunlardan bahsedeceğiz.

SQL Injection Nedir?

SQL injection, bir web uygulamasının kullanıcı girdisini veritabanına gönderirken, saldırganların bu girdi aracılığıyla zararlı SQL komutları çalıştırmasına olanak tanıyan bir tür saldırıdır. Bu saldırılar, genellikle kullanıcı adı ve parola gibi alanlarda yapılır.

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

SQL injection çalışması için, saldırganın web uygulamasına girdi yapması gerekir. Örneğin, bir web uygulamasında kullanıcı adı ve parola girişi için aşağıdaki gibi bir form olabilir:

<form action="girisyap.php" method="post">
    <input type="text" name="kullanici_adi">
    <input type="password" name="parola">
    <input type="submit" value="Giriş Yap">
</form>

Bu form aracılığıyla, saldırgan aşağıdaki gibi bir girdi yapabilir:

kullanici_adi = ' OR 1=1 --
parola = anything

Bu girdi, veritabanına aşağıdaki gibi bir sorgu çalıştıracaktır:

SELECT * FROM kullanicilar WHERE kullanici_adi = '' OR 1=1 --' AND parola = 'anything'

Bu sorgu, tüm kullanıcıları getirerek saldırgana yetkisiz erişim sağlamaktadır.

SQL Injection Koruması Nasıl Sağlanır?

SQL injection korumayı sağlamak için, adımları takip edebilirsiniz:

1. Kullanıcı girdilerini doğrulayın ve temizleyin. Örneğin, PHP'de aşağıdaki gibi bir doğrulama yapabilirsiniz:

$kullanici_adi = htmlspecialchars($_POST['kullanici_adi']);
$parola = htmlspecialchars($_POST['parola']);

2. Prepared statement kullanın. Prepared statement, sorguları önceden derleyerek, kullanıcı girdilerini ayrı olarak çalıştırır. Örneğin, PHP'de aşağıdaki gibi bir prepared statement kullanabilirsiniz:

$sorgu = $db->prepare('SELECT * FROM kullanicilar WHERE kullanici_adi = :kullanici_adi AND parola = :parola');
$sorgu->bindParam(':kullanici_adi', $kullanici_adi);
$sorgu->bindParam(':parola', $parola);
$sorgu->execute();

3. Veritabanı erişimini kısıtlayın. Veritabanına erişim yetkisi olan kullanıcıları sınırlandırın ve gerekli olmayan erişim yetkilerini kaldırın.

Sonuç

SQL injection, web uygulamalarında önemli bir güvenlik tehdididir. Ancak, kullanıcı girdilerini doğrulamak, prepared statement kullanmak ve veritabanı erişimini kısıtlamak gibi önlemler alarak, SQL injection korumayı sağlayabilirsiniz.

Yorumlar

Henüz yorum yok. İlk yorumu sen yap.