Tahribat.Com - Döküman : Sql Enjeksiyon Nedir, Nasıl Korunulur?
 
Tahribat.com Döküman Arşivi > Hack ve Güvenlik - İnternet ve Web > Sql Enjeksiyon Nedir, Nasıl Korunulur? - Yazar : arkinfes

Sql Enjeksiyon Nedir, Nasıl Korunulur? (Sayfa:1)

Bu dökümanda öncelikle Sql Injection'un ne olduğu açıklanacak, daha sonrada bu açığa karşı koymak için örnek bir filtre yazılacaktır. Dökümanda kullanılacak programlama dili Asp'dir.

Sql enjeksiyon nedir?

Web tabanlı programlama dillerinde veri tabanına bağlanırken ve veri sorgularken Sql komutlarını kullanırız.

Örneğin :
 
<% request.QueryString("id") %> ve <% Request.Form("kadi") %>

Bildiginiz gibi sql komutları," ' ", " " ", " or ", " Or " gibi karakter ve komutlardan oluşur. Örnekte görülen Request.Form("kadi") filitrelenmedigi için kullanıcı adı ve şifre yerine = or ""="" yazılarak ilk kullanıcı adı ve şifresi seçtirilerek, admin girişi yapılabilir.

Sql enjeksiyondan korunma?

1-)Fonksiyonlar

<%
Function koru(data)
data = Replace (data ,"`","",1,-1,1)
data = Replace (data ,"=","",1,-1,1)
data = Replace (data ,"&","",1,-1,1)
data = Replace (data ,"%","",1,-1,1)
data = Replace (data ,"!","",1,-1,1)
data = Replace (data ,"#","",1,-1,1)
data = Replace (data ,"<","",1,-1,1)
data = Replace (data ,">","",1,-1,1)
data = Replace (data ,"*","",1,-1,1)
data = Replace (data ,"/","",1,-1,1)
data = Replace (data ,"\","",1,-1,1)
data = Replace (data ,"And","",1,-1,1)
data = Replace (data ,"'","",1,-1,1)
data = Replace (data ,"Chr(34)","",1,-1,1)
data = Replace (data ,"Chr(39)","",1,-1,1)
data = Replace (data ,"or","",1,-1,1)
data = Replace (data ,"Or","",1,-1,1)
data = Replace (data ,"OR","",1,-1,1)
data = Replace (data ,"oR","",1,-1,1)
data = Replace (data ,"where","",1,-1,1)
data = Replace (data ,"Where","",1,-1,1)
data = Replace (data ,"WHERE","",1,-1,1)
data = Replace (data ,"+","",1,-1,1)
koru=data
End Function
%>

Burda ki kodda görüldügü gibi fonksiyonumuz koru adında  ve belirli karakterler filitreleniyor

Şimdi peki request.QueryString("id") 'de bundan nasıl korunucaz nasıl yapıcaz şimdi;

kodladıgımız sayfaya fonksiyonu koyuyoruz ister include ile ister normal şekilde
ve <% koru(request.QueryString("id")) %> burda parantez içine aldıgımız querystring imiz parantez dışında kalan koru ise daha once açtıgımız fonksiyonumuzun adı bu fonksiyonu kullanarak sql komutlarını süzmekle kalmayız aynı zamanda xss açığınıda kaparız

Peki formlardaki veri çekilirken nasıl süzüce

<% koru(request.form("kadi") ) %> gördügünüz gibi koru fonksiyonumuz ile sql veya xss karakterlerimiz formdan gelen bilgileri filitrelettiriyoruz

2-) Not Isnumeric ile koruma

Burda QueryString imiz sadece numaralı ile kullanabiliriz QueryString eğer har içeriyorsa sadece fonksiyon kullanılmalıdır
şimdi sadete gelelim

<% if (not Isnumeric(request.QueryString("id"))) then %>
<% Response.Redirect "hata.asp" %>
<% end if %>

Burda eğer id adında QueryString imiz numara değil ise hata.asp sayfasına yönlendir demek oluyor bu koruma yöntemide sql enjektede işe yaramakda ama dediğim gibi eğer QueryString sadece sayılı is QueryString harf içerense fonksiyon kullanmalısınız.

İyi çalışmalar dilerim.
Arkın Fescioğlu

[1]

Okunma sayısı :2645


Sözlük

Data

En Çok okunanlar
Radmin Ile Bilgisayarlara
Code Cracking‘e Gir
Adsl Account Calmak
Sc Keylogger Ve Kullanımı
MSN Messenger Püf Noktala
Beast 2.0.7 Trojan - Tuto
Uçan Balon Yapımı
Php Dersi 1
Programların Içindeki Sür
Port Listesi

 
Son 10 Döküman
Cracking - WinRar‘ın 40 G...
Nvidia Optimus Teknolojis...
JQuery Mobile
USB Bellekte Partition Ol...
MacOS X İçin Kullanıcı Şi...
C ile MySQL Programlama
Online Alışveriş Sırasınd...
C# ile FTP Üzerinde Dosya...
Geri Dönüşümsüz Disk Temi...
IDM'de Cookie Kullanımı
2001-2012 © Tahribat Group - Her Hakkı Saklıdır. - ● Gizlilik İlkeleri ● Kullanım Koşulları ● İletişim