Asp.Net Web Güvenliği : SQL Injection
SQL Injection
Sql Injection genel olarak sorguları manipüle ederek database üzerinde CRUD işlemleri yapabilmek için izlenen saldırı çeşididir.Bu saldırıyı yapmak için izlenen yollar genellikle querystring üzerinden veya sitede yer alan herhangi bir input üzerinden olabilir.Asp.Net MVC projelerimizde aşağıda yer alan çözümleri uygulayarak kolay bir şekilde çözebiliriz.
Sql Injection korunma yöntemleri ise ;
- ORM (Entity Framework , Hibernate)
- XSS Defence
- Data Validation
Bir örnek üzerinden açıklamaya çalışıp nasıl korunabiliriz bakalım ;
Özellikle herhangi bir Object Relational Mapping (ORM) aracı kullanmıyorsanız özellikle input veya querystring üzerinden gelen ifadeyi direkt sql sorgusuna dahil ediyorsanız çok büyük bir açığınız var demektir.
Entity Framework (EF) kullandığınız takdirde manuel bir sql sorgusu yazmayacağınız ve objeler üzerinden sorgulamalar yapacağınız için dışarıdan gelen herhangi bir Injection denemesi duvara çarpacaktır.
Aşağıda ki gibi bir formunuz var ve basit bir giriş işlemi ;
Gelen verileri ise aşağıdaki gibi bir şekilde işleme sokuyorsunuz.Dönen veri var ise giriş işlemi başarılı gibi düşünüyoruz ;
Password değeri istediğimiz şekilde gelirse hiç bir zaman sorun olmayacak.Fakat buna aşağıda ki gibi bir sql injection denemesi yapalım ;
Hoop sistemin içindesiniz. Sonda yer alan 1=1 true döndüreceği için önceki şartın artık bir anlamı kalmıyor ve login işlemi başarıyla sonlanarak Sql Injection gerçekleşiyor.
SQL Injection Korunma
- Bu tarz saldırılara karşı savunma yapmak için başta Entity Framework ve Linq süper ikilisini projenizde kullanmaya gayret edin.EF ve Linq sizin yerinize bu saldırıları native olarak ekarte etmektedir.
- Bir diğer husus ise Sql Injection ve XSS açığı birbiriyle ilişkilidir. Sql Injection saldırılarını önlemek için sitede yer alan XSS açıklarını kapatmak gerekir.Yazdığım yazı Asp.Net Web Güvenliği : XSS Attacks
- Bir diğer madde ise Data Validation . Giren girdileri belli formatlara uygun olarak girmeye zorlayarak minimize edebilirsiniz.
Injection örneği Codebash üzerinden uyarlanarak alıntılanmıştır.
Speed 점보카지노 Auto Roulette is a superfast variant with an impressive 2,500 games per day. Betting happens solely during the spin in Speed Auto Roulette. This popular variant has lower betting limits than other Roulette variants, with an additional ‘Five Bet’ for but more selection and choice. A leading writer and distributor of on line casino and gaming enterprise information and market research reports. We delight ourselves on the ability to supply fully traditional gaming tables alongside more modern styles or conc... MagiCasino Entertainments The One stop shop for all Casino gaming necessities licensed on line casino & Funcasino operator, re...
YanıtlaSil