SQL Injection Nedir? Nasıl Kapatılır? #PHP

        




 

 

Merhaba sevgili okurlar. Bugün oldukça yaygın olan, ülkemizdeki birçok sitede bulunan SQL Injection zaafiyetini ele alacağız

 

 

  SQL Injection Nedir?

(Bu Kısım Vikipedi Alıntısıdır!")

SQL Injection, veri tabanına dayalı uygulamalara saldırmak için kullanılan bir atak tekniğidir; burada saldırgan SQL dili özelliklerinden faydalanarak standart uygulama ekranındaki ilgili alana yeni SQL ifadelerini ekler. 

 
SQL injection saldırıları, saldırganların, sistemdeki kullanıcılardan birinin bilgileriyle giriş yapmasına,  mevcut verilere müdahale etmesine, bazı işlemleri iptal etmesine veya değiştirmesine, veri tabanındaki tüm verileri ifşa etmesine, veri tabanındaki tüm verileri yok etmesine, veri tabanı sunucusunda sistem yöneticisi olmasına olanak sağlar. 

 
SQL Injection, çoğunlukla web siteleri için kullanılan bir saldırı türü olarak bilinse de SQL veri tabanına dayalı tüm uygulamalarda gerçeklenebilir.


  SQL Injection Neyden            Dolayı   Kaynaklanır?

  SQL Injection, Karakterlerin filtrelenmediği zaman, uygulamaya kullanıcı girişinden yeni SQL ifadeleri eklenmesiyle oluşur.

 

 

 SQL Injection Nasıl Kapatılır?

        Örnek olarak şöyle bir kodumuz bulunsun;
$blog_id= $_GET['blog_id'];
$blogdetay_sor=mysqli_query($baglan,"select * from bloglar where blog_id='$blog_id'");
$blogdetay_cek=mysqli_fetch_array($blogdetay_sor);
    
SQL Injection Hatası

 

         Gördüğünüz gibi "$blog_id= $_GET['blog_id'];" kısmında bir filtre bulunmadığı için SQL Injection açığımız meydana geldi. Bu durumu düzeltmek istiyorsak kodumuzu aşağıdaki gibi yapmalıyız.
$blog_id=htmlspecialchars(strip_tags(addslashes($_GET['blog_id'])));
$blogdetay_sor=mysqli_query($baglan,"select * from bloglar where blog_id='$blog_id'");
$blogdetay_cek=mysqli_fetch_array($blogdetay_sor);

 

 Gördüğünüz gibi açığımız kapanmış durumdadır. Bugünkü yazımız burada son buluyor! İyi günler, iyi kod yazmalar efenim.

 

 

Post a Comment

Daha yeni Daha eski