Forum

Sql injection'dan k...
 
Bildirimler
Hepsini Temizle

Sql injection'dan korunmam için nasıl bir önlem almalıyım ?

6 Yazılar
4 Üyeler
0 Reactions
617 Görüntüleme
(@MennanSevim)
Gönderiler: 89
Estimable Member
Konu başlatıcı
 

Bir projede login ekranı aracılığıyla değil ama komut satırı ile sisteme hatta veritabanına giriş yapılmış.Veritabanı adı ve server ip'si elde edilerek tüm kullanıcıların şifresi çözülmüş.

 

Bütün bu verileri korumam için nelere dikkat etmeliyim.Nasıl hangi yöntemle login olmalıyım ? (c#) 

 
Gönderildi : 29/12/2011 15:26

(@ufuktatlidil)
Gönderiler: 5718
Illustrious Member
 

Sql userlarını kısıtlı haklarda tutmalısınız. SQL Enjeksiyon saldırıları SQL deyimlerinin girdilerdeki gereksiz (’)
tırnak işaretleri yardımıyla yeniden oluşturulması sayesinde yapılır. Filtreleme fonksiyonu yada tek tırnağı çift tırnağa çeviren bir fonksiyon ile bu açığı kapamış olursunuz. Veritabanındaki ayrılan alanın uzunluğu 10 karakterlikse, bu
alan için 50 karaktere sığan bir text kutusuna sahip olmanız sakıncalı
olabilir. Girdi uzunluklarını kısa tutmalısınız.  Girilen verinin istediğiniz türden bir veri olup, olmadığını kontrol
eden bir fonksiyon kullanırsanız kötü amaçlı kullanımlarda saldırganın kullanabileceği
harf ve sayı seçeneğini kısıtlayacaktır. Sql default port ile kullanmayın. Ayrıca , şu zamana kadar çeşitli ataklara maruz kaldıysanız güvenlik alt yapınızı tekrar gözden geçirmeniz iyi olacaktır.

 

 

 
Gönderildi : 29/12/2011 16:21

(@MennanSevim)
Gönderiler: 89
Estimable Member
Konu başlatıcı
 

Sql userlarını kısıtlı haklarda tutmalısınız. SQL Enjeksiyon saldırıları SQL deyimlerinin girdilerdeki gereksiz (’)
tırnak işaretleri yardımıyla yeniden oluşturulması sayesinde yapılır. Filtreleme fonksiyonu yada tek tırnağı çift tırnağa çeviren bir fonksiyon ile bu açığı kapamış olursunuz. Veritabanındaki ayrılan alanın uzunluğu 10 karakterlikse, bu
alan için 50 karaktere sığan bir text kutusuna sahip olmanız sakıncalı
olabilir. Girdi uzunluklarını kısa tutmalısınız.  Girilen verinin istediğiniz türden bir veri olup, olmadığını kontrol
eden bir fonksiyon kullanırsanız kötü amaçlı kullanımlarda saldırganın kullanabileceği
harf ve sayı seçeneğini kısıtlayacaktır. Sql default port ile kullanmayın. Ayrıca , şu zamana kadar çeşitli ataklara maruz kaldıysanız güvenlik alt yapınızı tekrar gözden geçirmeniz iyi olacaktır.

 

 

 

 

sql-shell > SELECT UTL_INADDR.get_host_address FROM dual

> 172.XXX.XXX.XXX

sql-shell > SELECT UTL_INADDR.get_host_name(172.XXX.XXX.XXX) FROM dual

> sampleDatabase2

 

 

ile veritabanının ipsini ve veritabanın adı alınabiliyor.Bunu kullanarak kullanıcıları ve şifrelerini de alabiliyolar.Bunun önüne geçmek için neler yapmalıyım mesela ? 

 

 
Gönderildi : 29/12/2011 17:44

(@kamerkoseoglu)
Gönderiler: 199
Estimable Member
 

Merhaba,

Bu işi profesyonel olarak yapmak istiyorsanız sisteminize IPS cihazı koymanızı tavsiye ederim.

 
Gönderildi : 29/12/2011 17:48

(@MennanSevim)
Gönderiler: 89
Estimable Member
Konu başlatıcı
 

Merhaba,

Bu işi profesyonel olarak yapmak istiyorsanız sisteminize IPS cihazı koymanızı tavsiye ederim.

 

şu an için yazılımsal olarak çözmeyi düşünüyorum 

 
Gönderildi : 29/12/2011 18:28

(@serkanates)
Gönderiler: 1317
Üye
 

SQL Injection saldırılarından girdi kontrolü (Ufuk bey bu konudan bahsetmiş) ve SQL sorgularınızda parametre kullanarak korunabilirsiniz.

Detaylı bilgi : [
http://msdn.microsoft.com/en-us/library/ff648339.aspx  ]

İyi çalışmalar. 

 
Gönderildi : 30/12/2011 02:55

Paylaş: