|
||
|
| root > Veritabanı Güvenliği > MS Access |
|
|
| Asp Uygulamalarında Access Veritabanı Güvenliği |
|
Merhaba Arkadaşlar. Bu başlıklar fazlası ile yeterli olacaktır. Hele son maddemiz öyle bir yöntem ki, fazla kişinin bildiğini sanmıyorum, diğer 3 maddeye gerek bırakmayacak denli kuvvetli bir çözümdür. Şimdi sırasıyla inceleyelim. Path GizlemeEskiden Şöyle bir yöntem vardı ; WebWiz Forum uygulaması kullanan bazı amatör kişiler veritabanı yolunu default olarak bırakırdı. Kendini hacker diye nitelendiren kişi ise o default yolu browser"ın adres çubuğuna yazardı ve Hop ! Db bilgisayarında. Gerçi artık bir çok hosting firması sunucu üzerinde bu gibi işlemleri, yani browser"a mdb yolu yazılmasını yasakladı. Ama yinede her firmada böyle bir uygulama olmadığından bu önlemi almakta fayda var. Eğer hazır script kullanıyorsanız veritabanı klasörünü mutlaka değiştirin. Kendi yazdığınız scriptde olsa hazırda olsa Veritabanı klasörünü ve adını sizin bile hatırlayamayacağınız, ancak ve ancak yazmış olduğunuz scriptin tanıyabileceği bir hale getirin. Örneğin ;45hgkhjuyii56asoyd.mdb gibi. Db Şifreleme Bu yöntem ise Access Programının özelliğidir. Araçlar menüsünden veritabanını şifreleyerek kötü niyetli kişilerin eline geçtiği takdirde elinde patlamasını sağlayabilirsiniz. QueryString Kontrolü Bu yöntemde şudur ki ; Çoğu zaman projelerimizde veritabanı bağlantı kodları, değişken tanımlamaları, fonksiyonlarımız, classlar vs. herbiri ayrı sayfalarda tutulur ve include yöntemi ile anasayfaya monte edilir. Bu şekilde yapılınca herhangi bir değişiklik veya hataya kolayca ve hızlı bir şekilde müdahale edebilme imkanına sahib oluruz. Aynı zamanda kodlarımız derli toplu olur ve her zaman anlaşılır ve güzel kod yazarız. Kısacası temiz iş ! Bunu yaparkende include sayfalarımızı bir klasörde toplarız örneğin ; Icerikler isimli bir klasörde toplarız ve buradan include ederiz anasayfamıza. Yani Include sayfalarımız dizinimizde bir arada toplu halde bulunur. Buda temiz iş ! Fakat eğer biz adres çubuğuna Icerikler klasörü üzerinden atıyorum ; dbbaglanti.asp ( db bağlantı kodlarımız bu sayfada varsayalım ) yazılmasını kontrol edip engellemez isek ; Veritabanı path yanlış çıktı vereceğinden programımız hataya maruz kalacaktır. O nedenle Sql Injection Attack uygulanabilir hale gelebilir. Bu şekilde kontrolümüzü yaparsak Saldırgan bu yöntemden de ümidini kesecektir. Şimdi geldik en can alıcı yönteme. Bu gerçekten çok etkili bir yöntemdir. Daha önce kullanmadım çünkü bu makaleyi yazmadan yarım saat önce aklıma geldi ve bir test uygulaması yaptım ve sonuç başarılı oldu. Hemen bu yöntemide eklemek istedim. Random Name Bu yöntem üzerine sayfa sayfa makalede yazabilirim aslında. Ama uzarda gider. Anlatabileceğim en basit haliyle anlatacağım. Her sayfa refresh edildiğinde yada siteye her girildiğinde fso kullanarak veritabanı ismini değiştiriyoruz. Bu isim random olarak verildiğinden bu ismide sadece yazacağımız script ve içerisindeki ismi değiştiren ve bizim algoritmamız ile isim veren fonksiyonumuz yada class"ımız bilecektir. Bununla ilgili bir örnek yapmak istiyorum ki daha açıklayıcı olsun. Sonrada makalemizi sonlandıralım ; <% Function nameChange(byVal strOldName, byVal strNewName) Set FSO = Server.CreateObject("Scripting.FileSystemObject") If FSO.FileExists(Server.MapPath(strOldName)) Then Set Dosya = FSO.GetFile(Server.MapPath(strOldName)) Dosya.Name = strNewName `// İsim Değiştirildi End If End Function Progress = nameChange("45hgkhjuyii56asoyd.mdb","dsd56yuilkj.mdb") %> Bu tarz bi fonksiyon sayesinde db ismini her seferinde değiştirebiliriz. Bu fonksiyonun en basit halidir. Tabiki unutmamanız gereken bazı hususlar var mesela ; Yeni verilen Db ismini her seferinde session yada application nesnesinde yada ne bileyim cookies"de vs. tutmanız gerekir ki veritabanı provider"ı yazarken bu nesnelerde çekeceksiniz db ismini programa buradan bildireceksiniz. Aynı zamanda sabit isimler değil isim vermesi için numara harf karışımı kod üreten bir fonksiyon daha yazın. Onun algoritması sizin hayal gücünüze kalmış tabiki. O algoritmadan çıkan sonucu db ismine verin. Bu şekilde veritabanı isminiz her seferinde değiştiğinden erişimi saldırgan için hayli güç olacaktır. İyi çalışmalar... |
|
| Bağlantılar Bg.org.tr |
| CS - Security Expert Network | AUP&TOS |