Forum
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#)
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 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 ?
Merhaba,
Bu işi profesyonel olarak yapmak istiyorsanız sisteminize IPS cihazı koymanızı tavsiye ederim.
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
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.