Sql injection'dan k...
 
Bildirimler
Hepsini Temizle

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

  RSS
Mennan Sevim
(@MennanSevim)
Üye

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#) 

Alıntı
Gönderildi : 29/12/2011 14:26
Ufuk TATLIDIL
(@ufuktatlidil)
Saygın Üye

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.

 

 

CevapAlıntı
Gönderildi : 29/12/2011 15:21
Mennan Sevim
(@MennanSevim)
Üye

[quote user="Ufuk TATLIDİL"]

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.

 

 

[/quote]

 

 

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 ? 

 

CevapAlıntı
Gönderildi : 29/12/2011 16:44
Kamer KOSEOGLU
(@kamerkoseoglu)
Üye

Merhaba,

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

CevapAlıntı
Gönderildi : 29/12/2011 16:48
Mennan Sevim
(@MennanSevim)
Üye

[quote user="Kamer KOSEOGLU"]

Merhaba,

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

[/quote]

 

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

CevapAlıntı
Gönderildi : 29/12/2011 17:28
Serkan Ateş
(@SerkanAtes)
Ü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. 

CevapAlıntı
Gönderildi : 30/12/2011 01:55
Paylaş: