.NET Database reverse engineeringden koruma

Sheamus

Hectopat
Katılım
28 Temmuz 2016
Mesajlar
185
Çözümler
1
Merhabalar, uygulamamın connection string'i reverse engineering'den nasıl korurum? Obfuscator falan kullanmak istemiyorum, genelde çoğu bir işe yaramıyor dakikasında kırıyorlar yine. Ben birkaç fikir düşündüm, sizin de fikirlerinizi bekliyorum.

Asıl kullanıcı verileri Database 1'de saklanıcak. Kullanıcı Windows application'ı açtıgında Websitesine yönlendiricek ve oradan girişi yapıcak. Windows application'ın Database 1 ile hiç bir ilgisi olmayacak. Giriş bilgisini Database 2'ye göndericek gönderdiği veriler girişin yapıldığı IP gibi şeyler, sonra Windows app'de Database 2 bağlı olucak ve eğer gelen veriler bilgisayarın IP'sine uyuşuyorsa girişi yapıcak.
Benim asıl sorunum burada başlıyor, Database 2'ye veri yazma işleminin sadece website üzerinden yapılabiliyor olması lazım, website harici başka yerden erişilmeye çalışıldığında sadece Database'deki verilerin okunmasına izin verilirse çalınsada umurumda olmaz sonuçta...

Database olarak Firebase Database kullanmayı düşünüyorum ücretsiz olduğu için. MySQL gibi databaselerde Userlara gerekli yetki verilebiliyormuş sanırım yani sadece okuma, yazma yetkisi gibi şeyler. Bunu açıklarsanız sevinirim.
 
Veritabanı sunucularında, kullanıcı yapılandırması yaparken, nereden bağlanabileceklerini ayarlayabiliyorsun. Örneğin; MySQL'de, her yerden bağlantıya izin vermek için, "%" yazılıyor. Buraya bağlantıyı kabul edeceğin sitenin domain'ini yazarsan, sadece o domain'den gelen bağlantıları kabul edecektir. Firebase'de böyle bir özellik var mıdır bilemeyeceğim. Profesyonel projelerde, tek bir yerden erişime izin verilmek istendiğinde, MySQL bu şekilde kullanılıyor.
 
Veritabanı sunucularında, kullanıcı yapılandırması yaparken, nereden bağlanabileceklerini ayarlayabiliyorsun. Örneğin; MySQL'de, her yerden bağlantıya izin vermek için, "%" yazılıyor. Buraya bağlantıyı kabul edeceğin sitenin domain'ini yazarsan, sadece o domain'den gelen bağlantıları kabul edecektir. Firebase'de böyle bir özellik var mıdır bilemeyeceğim. Profesyonel projelerde, tek bir yerde erişime izin verilmek istendiğinde, bu şekilde kullanılıyor.
Hosting sağlayıcım remote access'i desteklemiyormuş MySQL için. MySQL kesin çözüm olucaksa başka hosting bakabilirim aslında. AWS, Google Cloud, DigitalOcean gibi servisleri kullanmayı denedim fakat hiçbiri ön ödemeli kart desteklemiyormuş. Önerebileceğiniz varsa ücretli/ücretsiz önerirseniz sevinirim.
 
MongoDB'de de bu şekilde bir IP Whitelist özelliği bulunuyor. Üstelik MongoDB'nin Atlas adında ücretsiz bir veritabanı hizmeti var. 500 MB depolama alanı veriyor sana. Online kullanıyorsun, herhangi bir sunucuya MongoDB kurmana gerek kalmıyor. NoSQL kullanabilirsen, bu servisi öneririm. Kişisel sitemde de veritabanı olarak Atlas'ı kullanıyorum.

Bahsettiğim bölüm:
1596749338663.png


 

Geri
Yukarı