Merhaba arkadaşlar bu yazıda siz değerli okurlarıma SQL Injection nedir ? Konusunu ele alacağız.Web uygulamalarımızda birden fazla işlemi gerçekleştirmek için kullanıcıdan alınan veri ile dinamik SQL cümleleri oluşturulur. Buna örnek verecek olursak eğer mesela “SELECT * FROM products”Bu örnek ile SQL’deki bütün ürünleri bir bir sıralayabiliriz.Injection bu cümlecikleri yazarken araya sıkıştırılan bir meta-karakter sebep olabiliyor.
Peki Bu Meta-Karakter Kimdir Nedir?
Bir program için özel anlamı olan karakterlere verilen isimdir. Durun anlamadınız değil mi ? bende ilk başta anlamamıştım 😀
ama şu örnekle daha iyi anlayacaksınız,C#,Javascript,PHP gibi dillerde(\) backslash yani ters slash karakteri bir meta-karakteridir.
Derleyici ve Yorumlayıcılarımız bu meta-karakterleri görünce bir sonraki komutu buna göre işler.
SQL’de kritik karakterimiz(‘)tek tırnaktır.Biliyorsunuz ki iki tane tek tırnak arasına string yazılar yazabiliyoruz.Diğer
önemli karakterimiz ise (;) noktalı virgülümüzdür bu satırın bittiğini bize göterir.
Bir örnek üzerinden şöyle açıklama yaplalım ki konu anlaşılır olsun. Websitemize giriş örneğini ele alalım.
Formdan gelen kullanıcı adı v şifre ile SQL sorgumuz şu şekilde olacaktır.
(SELECT * FROM members WHERE user=’Admin’ AND password=’123’gibi)
SQL sorgumuz kayıt döndürdüğü sürece böyle bir kulanıcının var olduğunu bize gösterir oturum açılır ve üye sayfaya giriş yapmış olur.
Şayet bunun tam tersi olduysa yani kayıt döndürmediyse sorgumuz bu şu demek oluyor böyle bir kullanıcı yok demektir size hata
mesajı verecektir.SQL Injection, SQL sorgusunun amacına müdahale ederek farklı bilgileri elde etmeye denir.
Comments 0