Sql injection son zamanların popüler açıklarından birtanesi.Gerek asp,gerek php olmak üzere çok sık bırakılan bir açık türüdür.Adındanda anlaşılacağı üzere sql cümlelerinin enjekte edilerek değer döndürmesi anlamına geliyor.Veritabanından yaptığımız her sorguda sql karakterlerini filtreye sokup temizleyerek dahil etmemiz gerekir.Aksi taktirde index.php?id=2 gibi bir parametreden yazılacak sql sorgusu veritabanı tarafından işletilir ve size geri döndürülür.Bundan faydalanmak isteyen bir kişi veritabanınızdaki kullanıcı adı şifrelere yahut başka bilgilere ulaşmak isteyecektir.İşte bunun önüne geçmek için bir fonksiyon yazıyoruz bu fonksiyon ile bu karakterleri filtreliyoruz.Sorgularınızda bu fonksiyonu dahil ederseniz dış tehtitlerin bir nevze önüne geçmiş olursunuz.
CODE:
<%
sql injection filter
function temizle(sifreniz)
sifreniz = Replace (sifreniz ,"`","")
sifreniz = Replace (sifreniz ,"=","")
sifreniz = Replace (sifreniz ,"&","")
sifreniz = Replace (sifreniz ,"%","")
sifreniz = Replace (sifreniz ,"!","")
sifreniz = Replace (sifreniz ,"#","")
sifreniz = Replace (sifreniz ,"<","<")
sifreniz = Replace (sifreniz ,">",">")
sifreniz = Replace (sifreniz ,"*","")
sifreniz = Replace (sifreniz ,"And","")
sifreniz = Replace (sifreniz ,"'","")
sifreniz = Replace (sifreniz ,"Chr(34)","")
sifreniz = Replace (sifreniz ,"Chr(39)","")
temizle=sifreniz
end function
sifreniz = temizle(sifreniz)
%>
________________________________________________________________________________
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "[ ConnectionString ]";
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = " Select MemberID"
+ " From Member"
+ " Where Username = @username and Password = @password";
cmd.Parameters.AddWithValue("@username",txtUsername.Text);
cmd.Parameters.AddWithValue ("@password",txtPassword.Text);
conn.Open();
int MembetID = Convert.ToInst32(cmd.ExecuteScalar());
conn.Close();
Sağol güzel konu :)


guzelde Bazı hackerler Bununlada yetinmio :D
Bu sadece bir güvenlik açığı hepsi bu.Yetinip yetinmeme konusu sizi ilgilendirir,sadece kodlama yaparken bu tür şeylerede dikkat edilirse daha güvenli bir kodlama yapmış olursunuz..Benim anlatmak istediğim buydu..Bilmem anlatabildimmi ?
