connection string'i hex editörden gizlemek
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
connection string'i hex editörden gizlemek
Arkadaşlar merhaba.
Yazdığım programların içine sql'e bağlanmak için ado query vs. yerleştiriyorum. Tabi doğal olarak sql server'a bağlanması için connection string'i de içine yazıyorum (kullanıcı adı şifre ip adresi vs.).
Diyelimki ben bu programı sattım sql olarak benim datacenter da duran sql serverımı kullanıyor.
Peki adam programı hex editör vs. ile açıp benim connection stringi görebilirmi. Görebiliyorsa nasıl bir önlem almalıyım.
Şifreli olarak yazabilirmiyim bu connection string'i. Yazdığım bu şifreli connection stringi hex editörden programı çalıştırarak baktığında da görmemesi lazım.
Herkesin görüşlerini önerilerini bekliyorum.
(Not: Konuyu sql tarafında da açtım ama cevap bulamadığım için aynı konuyu burayada açtım. viewtopic.php?f=27&t=29041 )
Yazdığım programların içine sql'e bağlanmak için ado query vs. yerleştiriyorum. Tabi doğal olarak sql server'a bağlanması için connection string'i de içine yazıyorum (kullanıcı adı şifre ip adresi vs.).
Diyelimki ben bu programı sattım sql olarak benim datacenter da duran sql serverımı kullanıyor.
Peki adam programı hex editör vs. ile açıp benim connection stringi görebilirmi. Görebiliyorsa nasıl bir önlem almalıyım.
Şifreli olarak yazabilirmiyim bu connection string'i. Yazdığım bu şifreli connection stringi hex editörden programı çalıştırarak baktığında da görmemesi lazım.
Herkesin görüşlerini önerilerini bekliyorum.
(Not: Konuyu sql tarafında da açtım ama cevap bulamadığım için aynı konuyu burayada açtım. viewtopic.php?f=27&t=29041 )
Re: connection string'i hex editörden gizlemek
evet stringi şifreleyebilirsin ama işine yaramaz. sadece zorlaştırmış olursun. şifrelediğin stringi çözmeden sende kullanamazsın. çözdüğün anda programına müdehale edilip alınabilir. ayrıca bağlantı için kullanılan dll dosyalarınada müdahale edilebilir v.s.
korumanın en güzel yolu, programındaki kullanıcıların gerçek veri tabanı kullanıcısı olmasıdır. sadece program tarafından bilinen sanal kullanıcılar kullanmaktan kaçının.
tabi bu kadar değerli bir program ise.
bence stringi şifrelemek işinizi görecektir. yoksa işi inada bindiren zaten bir yol bulur.
korumanın en güzel yolu, programındaki kullanıcıların gerçek veri tabanı kullanıcısı olmasıdır. sadece program tarafından bilinen sanal kullanıcılar kullanmaktan kaçının.
tabi bu kadar değerli bir program ise.
bence stringi şifrelemek işinizi görecektir. yoksa işi inada bindiren zaten bir yol bulur.
Re: connection string'i hex editörden gizlemek
Gerçek veritabanı kullanıcısı olmak derken neyi kast ettiğinizi pek anlamadım açıkçası.
Ama eğer her kullanıcı için sql server'da bir kullanıcı aç zaten bunlarda veri tabanını bilen kişiler olsun diyorsanız bu imkansız. Çünkü program hiç tanımadığım kişilere satılacak. Adamlar sadece veri girecek okuyacak.
Ama eğer her kullanıcı için sql server'da bir kullanıcı aç zaten bunlarda veri tabanını bilen kişiler olsun diyorsanız bu imkansız. Çünkü program hiç tanımadığım kişilere satılacak. Adamlar sadece veri girecek okuyacak.
Re: connection string'i hex editörden gizlemek
SQL Server'daki bir SA şifresini kullanıyorsanız veya yazılımınızın farklı yetki seviyelerinde kullanıcı erişimi için aynı SQLServer oturumu ve şifresini kullanıyor iseniz hatta veritabanına müdahale edebilecek yetkileri barındıran bir kullanıcı erişimi yetkisi barındırıyorsanız korkmakta haklısınız.
Bu durumda akla ilk gelen çözüm DOMAIN olan kullanıcılardan erişimi alan NTLM authentication ile Wİndows güvenliği ile güdümlü bir çözüm üretilmesidir. Connectionstring'i açık kaynak kodla verseniz dahi kullanıcı oturumundan dolayı koruma işlemini Windows'a bırakmış olursunuz. Yok her kullanıcıya windows yetkilendirmesi yapacak bir altyapım yok vs. diyorsanız o zaman her SQLServer'daki kullanıcı sayısını gerekiyorsa tablolara kadar küçültecek kadar çeşitlendirmelisiniz. Her yazılım grubunu ayrı ayrı derleyip kullanıma özel alt programlar üretmelisiniz. ConnectionStringlerini şifrelemek işi daha da güvenli kılacak, her önüne gelen değil de sadece bunu kafaya takan tarafından kırılması için geciktirici unsur olacaktır.
Bu durumda akla ilk gelen çözüm DOMAIN olan kullanıcılardan erişimi alan NTLM authentication ile Wİndows güvenliği ile güdümlü bir çözüm üretilmesidir. Connectionstring'i açık kaynak kodla verseniz dahi kullanıcı oturumundan dolayı koruma işlemini Windows'a bırakmış olursunuz. Yok her kullanıcıya windows yetkilendirmesi yapacak bir altyapım yok vs. diyorsanız o zaman her SQLServer'daki kullanıcı sayısını gerekiyorsa tablolara kadar küçültecek kadar çeşitlendirmelisiniz. Her yazılım grubunu ayrı ayrı derleyip kullanıma özel alt programlar üretmelisiniz. ConnectionStringlerini şifrelemek işi daha da güvenli kılacak, her önüne gelen değil de sadece bunu kafaya takan tarafından kırılması için geciktirici unsur olacaktır.
Re: connection string'i hex editörden gizlemek
Db'ye erişmek isteyen kullanıcı direk sqle saldırır connectionstring ile uğraşmaz bence. Bir kaç komutla sqle direk yetkiye sahip olabilir istediğin kadar koruma koy fark etmez.
Re: connection string'i hex editörden gizlemek
Orhan bey haklısınızı. Sonuçta kafaya takan hertürlü çözümünü bulur. Çünkü sql server'ı dışarıya açmış oluyorum. Peki bunu yapan nasıl yapıyor. Başka bir çözüm varmıdır. Sql'i dışarıya açmadan nasıl yaparım bu işi. ASP.NET de web sayfasında biliyosunuz sql olayları server tarafında çalışıyor. Bu projedede böyle birşey yapabilirmiyim.
Re: connection string'i hex editörden gizlemek
ASP benzeri bir mantık oluşturmak için server'da sunucu olarak çalışan müstakil bir uygulama modül yazmanız gerekir. Kullanıcıların kullandığı modül ile sunucu modül konuşmalı ve sql sorgularının tümü sunucu modül tarafından yapılmalıdır. Kullanıcı modülünde connection string vb. gereği o zaman kalmaz. Veri transferi XML vb. yöntemle TCP üzerinden akar ve ekrana yansıtılır.
Windoew Server yüklüyse Terminal Services de bir yöntemdir.
Windoew Server yüklüyse Terminal Services de bir yöntemdir.
Re: connection string'i hex editörden gizlemek
Böyle birşey için öneriniz nedir. Nereden başlayayım. Server tarafındaki sunucu uygulamasını nasıl yazıcam ve client'ten connstring olmadan nasıl sql'e bilgi rişi yapıcam. Biraz örnekler vererek açıklayabilirmisiniz.mrmarman yazdı:ASP benzeri bir mantık oluşturmak için server'da sunucu olarak çalışan müstakil bir uygulama modül yazmanız gerekir. Kullanıcıların kullandığı modül ile sunucu modül konuşmalı ve sql sorgularının tümü sunucu modül tarafından yapılmalıdır. Kullanıcı modülünde connection string vb. gereği o zaman kalmaz. Veri transferi XML vb. yöntemle TCP üzerinden akar ve ekrana yansıtılır.
Windoew Server yüklüyse Terminal Services de bir yöntemdir.
Re: connection string'i hex editörden gizlemek
server-client bir yapı kurgulayabilirsiniz yada web servis yazabilirsiniz (o da bir nevi server-client uygulama zati
)
yani ister TCP üzerinden doğrudan bağlanacak bir yapı kurgulayıp mesajlaşma için kendinize uygun bir protokol oluşturursunuz, ya da web servisi yazıp işlemler için fonksiyon tanımlarsınız,client tarafında da bunları kullanırsınız.
her iki yapıda da sql işlemleri server tarafında yapılacağı için clientin sqlden haberi olmayacak dolayısıyla connection stringiniz sizin serverda kalacak ve kimsenin ondan haberi olmayacak...
her iki yapıdada genel mantık olarak yapılacak işi ve kaydedilecek bilgileri parametre olarak gönderip sorgulama sonuçlarını dönersiniz...

yani ister TCP üzerinden doğrudan bağlanacak bir yapı kurgulayıp mesajlaşma için kendinize uygun bir protokol oluşturursunuz, ya da web servisi yazıp işlemler için fonksiyon tanımlarsınız,client tarafında da bunları kullanırsınız.
her iki yapıda da sql işlemleri server tarafında yapılacağı için clientin sqlden haberi olmayacak dolayısıyla connection stringiniz sizin serverda kalacak ve kimsenin ondan haberi olmayacak...
her iki yapıdada genel mantık olarak yapılacak işi ve kaydedilecek bilgileri parametre olarak gönderip sorgulama sonuçlarını dönersiniz...
bazen yükselmek için önce dibi görmek gerekir...
forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Re: connection string'i hex editörden gizlemek
unicorn64 yazdı:server-client bir yapı kurgulayabilirsiniz yada web servis yazabilirsiniz (o da bir nevi server-client uygulama zati)
yani ister TCP üzerinden doğrudan bağlanacak bir yapı kurgulayıp mesajlaşma için kendinize uygun bir protokol oluşturursunuz, ya da web servisi yazıp işlemler için fonksiyon tanımlarsınız,client tarafında da bunları kullanırsınız.
her iki yapıda da sql işlemleri server tarafında yapılacağı için clientin sqlden haberi olmayacak dolayısıyla connection stringiniz sizin serverda kalacak ve kimsenin ondan haberi olmayacak...
her iki yapıdada genel mantık olarak yapılacak işi ve kaydedilecek bilgileri parametre olarak gönderip sorgulama sonuçlarını dönersiniz...
Bende şuan web servisleri kısmına eğilmiş durumdayım. Çat pat c# bilgimle web servisini oluşturuyorum fakat bu web serverdan gelen veriyi (xml oluyor tabi) dataset dbgrid içine nasıl atıcam onu bulamadım.
Re: connection string'i hex editörden gizlemek
Merhabalar ,
DB ile arayüz arasına katman koymak isterseniz DataSnap olarak araştırın DataSnap bu iş için var.
Kolay gelsin.
DB ile arayüz arasına katman koymak isterseniz DataSnap olarak araştırın DataSnap bu iş için var.
Kolay gelsin.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
Re: connection string'i hex editörden gizlemek
web servisinde her ne kadar iletişim xml ile olsa da servisten dönen cevap string,integer,array yada nesne olarak elinizde olacaktır. gerçi dönen xml mesajına da erişebilirsiniz ama soap mesaj döneceği için doğrudan clientdatasete falan aktarılmaz sanırım.tuna yazdı: Bende şuan web servisleri kısmına eğilmiş durumdayım. Çat pat c# bilgimle web servisini oluşturuyorum fakat bu web serverdan gelen veriyi (xml oluyor tabi) dataset dbgrid içine nasıl atıcam onu bulamadım.
kayıtları gridde vs göstermek için ise clientdataset yada memtable tarzı bir yapı kullanabilirsiniz, gelen mesajda dönen nesneyi işler, memtable a aktarıp onunla da gridde gösterebilirsiniz...
bazen yükselmek için önce dibi görmek gerekir...
forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Re: connection string'i hex editörden gizlemek
yanlış hatırlamıyor isem @vkamadan arkadaşımızın bu konu ile ilgili bir makalesi var idi.tuna yazdı: Bende şuan web servisleri kısmına eğilmiş durumdayım. Çat pat c# bilgimle web servisini oluşturuyorum fakat bu web serverdan gelen veriyi (xml oluyor tabi) dataset dbgrid içine nasıl atıcam onu bulamadım.
makaleleri bir araştır.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Re: connection string'i hex editörden gizlemek
Evet @vkamadan arkadaşımız çok güzel anlatmış. xml veriyi artık gride çekebiliyorum.
Şuan ilerlemeye başladım.
Ama aklım halen connection string'i nasıl şifreleyemediğimiz de kaldı. Neyse internet ortamına program yazmak böyle birşey olsa gerek. Gerçekten zahmetli işler.
İlgilenen tüm arkadaşlara teşekkür ederim.
Şuan ilerlemeye başladım.
Ama aklım halen connection string'i nasıl şifreleyemediğimiz de kaldı. Neyse internet ortamına program yazmak böyle birşey olsa gerek. Gerçekten zahmetli işler.
İlgilenen tüm arkadaşlara teşekkür ederim.
Re: connection string'i hex editörden gizlemek
Bir arkadaşım bu gibi durumlar için bir application server geliştirdi. Sen sadece istediği tablo alanadı vs veriorsun o sana veriyi döndürüyor. içinde chat ve ftp de barınıyor üstelik standart olmayan tek bir porttan çalışıyor. ama ücretli bir çözüm bilmiş olasıntuna yazdı:Arkadaşlar merhaba.
Yazdığım programların içine sql'e bağlanmak için ado query vs. yerleştiriyorum. Tabi doğal olarak sql server'a bağlanması için connection string'i de içine yazıyorum (kullanıcı adı şifre ip adresi vs.).
Diyelimki ben bu programı sattım sql olarak benim datacenter da duran sql serverımı kullanıyor.
Peki adam programı hex editör vs. ile açıp benim connection stringi görebilirmi. Görebiliyorsa nasıl bir önlem almalıyım.
Şifreli olarak yazabilirmiyim bu connection string'i. Yazdığım bu şifreli connection stringi hex editörden programı çalıştırarak baktığında da görmemesi lazım.
Herkesin görüşlerini önerilerini bekliyorum.
(Not: Konuyu sql tarafında da açtım ama cevap bulamadığım için aynı konuyu burayada açtım. viewtopic.php?f=27&t=29041 )
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog