connection string'i hex editörden gizlemek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
tuna
Üye
Mesajlar: 300
Kayıt: 07 Tem 2008 04:39
Konum: İstanbul

connection string'i hex editörden gizlemek

Mesaj gönderen tuna »

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 )
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: connection string'i hex editörden gizlemek

Mesaj gönderen mkysoft »

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.
Kullanıcı avatarı
tuna
Üye
Mesajlar: 300
Kayıt: 07 Tem 2008 04:39
Konum: İstanbul

Re: connection string'i hex editörden gizlemek

Mesaj gönderen tuna »

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.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: connection string'i hex editörden gizlemek

Mesaj gönderen mrmarman »

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.
Resim
Resim ....Resim
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: connection string'i hex editörden gizlemek

Mesaj gönderen orhancc »

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.
Kullanıcı avatarı
tuna
Üye
Mesajlar: 300
Kayıt: 07 Tem 2008 04:39
Konum: İstanbul

Re: connection string'i hex editörden gizlemek

Mesaj gönderen tuna »

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.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: connection string'i hex editörden gizlemek

Mesaj gönderen mrmarman »

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.
Resim
Resim ....Resim
Kullanıcı avatarı
tuna
Üye
Mesajlar: 300
Kayıt: 07 Tem 2008 04:39
Konum: İstanbul

Re: connection string'i hex editörden gizlemek

Mesaj gönderen tuna »

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.
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.
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: connection string'i hex editörden gizlemek

Mesaj gönderen unicorn64 »

server-client bir yapı kurgulayabilirsiniz yada web servis yazabilirsiniz (o da bir nevi server-client uygulama zati :D )
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...

Resim
Kullanıcı avatarı
tuna
Üye
Mesajlar: 300
Kayıt: 07 Tem 2008 04:39
Konum: İstanbul

Re: connection string'i hex editörden gizlemek

Mesaj gönderen tuna »

unicorn64 yazdı:server-client bir yapı kurgulayabilirsiniz yada web servis yazabilirsiniz (o da bir nevi server-client uygulama zati :D )
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.
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: connection string'i hex editörden gizlemek

Mesaj gönderen vkamadan »

Merhabalar ,
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
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: connection string'i hex editörden gizlemek

Mesaj gönderen unicorn64 »

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.
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.

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...

Resim
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: connection string'i hex editörden gizlemek

Mesaj gönderen aslangeri »

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.
yanlış hatırlamıyor isem @vkamadan arkadaşımızın bu konu ile ilgili bir makalesi var idi.
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
Kullanıcı avatarı
tuna
Üye
Mesajlar: 300
Kayıt: 07 Tem 2008 04:39
Konum: İstanbul

Re: connection string'i hex editörden gizlemek

Mesaj gönderen tuna »

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.
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Re: connection string'i hex editörden gizlemek

Mesaj gönderen ikutluay »

tuna 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 )
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ın
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
Cevapla