ASP ile SQLi Koruması
1. Kodumuz:

Kod: [Seç]
<% IF Not IsNumeric(Request.QueryString("id")) THEN Response.Write "SQL Injection Atağı Tespit Edildi!" Response.End END IF %> Bu kodumuzu hayat diline uyarlarsak; “id” QueryString’i eğer Numeric (Sayısal) bir değer değilse ekrana “SQL Injection Atağı Tespit Edildi!” yazdır ve geri kalan tüm işlemleri durdur. Bu kodumuzu id QueryString’imizi almadan hemen önceki satıra yazmalısınız.

Örneğin;

Kod: [Seç]
<% IF Not IsNumeric(Request.QueryString("id")) THEN Response.Write "SQL Injection Atağı Tespit Edildi!" Response.End END IF id=Request.QueryString("id") Set kayit_setiniz=Server.CreateObject("adodb.recordset") SQL="Select * From musteri Where id=" & id kayit_setiniz.open SQL,bag,1,3 %>
2. Kodumuz:

Kod: [Seç]
<% IF kayit_setiniz.eof THEN Response.Write "İstediğiniz Veri Bulunamadı!" Response.End END IF %>Bu kodumuz ise eğer veritabanından istenilen herhangi bir veri bulamaz ise ekrana “İstediğiniz Veri Bulunamadı!” yazdırarak geri kalan tüm işlemleri durduruyor. Bu kodumuzu da QueryString’imizi alıp gerekli tablo bağlantısını yaptıktan hemen sonra ki satıra yazıyoruz;

Kod: [Seç]
<% id=Request.QueryString("id") Set kayit_setiniz=Server.CreateObject("adodb.recordset") SQL="Select * From musteri Where id=" & id kayit_setiniz.open SQL,bag,1,3 IF kayit_setiniz.eof THEN Response.Write "İstediğiniz Veri Bulunamadı!" Response.End END IF %>
Peki bunun SQL Injection ile ne alakası var? Derseniz, işte cevabı; saldırgan dosya_adi.asp?id=3 gibi bir yere saldıracağı zaman klasik hata verdirme yöntemi olan ‘a yı dener başarılı olamaz ise id QueryString’ine olmayan sayısal bir değer girer; dosya_adi.asp?id=99999999 gibi eğer verdiğim ikinci kod gibi bir koruma şekil yok ise veritabanı hata verir ve oluşan hata ile veritabanından kolayca veri çekilebilinir. Böylece saldırgan amacına ulaşmış olur.

Son olarak kodlarımızın son hali şu şekildir;

Kod: [Seç]
<% IF Not IsNumeric(Request.QueryString("id")) THEN Response.Write "SQL Injection Atağı Tespit Edildi!" Response.End END IF id=Request.QueryString("id") Set rs=Server.CreateObject("adodb.recordset") SQL="Select * From musteribi Where id=" & id rs.open SQL,bag,1,3 IF kayit_setiniz.eof THEN Response.Write "İstediğiniz Veri Bulunamadı!" Response.End END IF %>
 
İletişim
 
Site yönetimi ile iletişim için :

ose_35_@hot...
Sitemde Ara
 


Google Arama
Sitemde Arama
Reklam Alanı
 
Anket
 
 
Bugün 55844 ziyaretçi (118440 klik) kişi burdaydı!
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol