folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder Winform Connection String Gizleme



Winform Connection String Gizleme

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    AsayisciAsayisci
    Asayisci
    Asayisci's avatar
    Kayıt Tarihi: 14/Eylül/2009
    Erkek

    Merhaba arkadaşlar

    bir proje üzerinde çalışıyorum.

    uygulama windows tabanlı. C# ile geliştiriyorum.

    uygulamaya uzaktan client bilgisayarlar erişiyor.

    haliyle exe dosyasının config dosyasında connection string bilgileri bulunmuş bulunuyor.

    bunun önüne nasıl geçebilirim. web servis demeyin. tüm proje için tek tek tekrar web servis yazmak çok zamanımı alır.

    fikri önerisi olan?

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cukurova
    cukurova's avatar
    Kayıt Tarihi: 21/Aralık/2003
    Erkek

    Malesef yapabileceğim çok fazla bir seçenek yok, IL ve Net framework yapısı gereği yüzde yüz native code elde edemezsin. Bunun için obfuscation, Ngen ve .Net Native gibi yöntemler var ama yinede MSIL kodu içinde barındırıyor. İşi bilen biri bunlarıda rahatlıkla aşar.
    Son olarak IL2CPU adında compiler çıkmıştı ve gerçek native code iddasi vardı ama hiç uğraşmadım. Bir göz atabilirsin.

     

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    AsayisciAsayisci
    Asayisci
    Asayisci's avatar
    Kayıt Tarihi: 14/Eylül/2009
    Erkek

    bunun mutlaka mantıklı bir yöntemi olması lazım.
    config dosyası içerisnde bağlantı stringinin olması çok aptalca.

    en azından bunu gizlemek mümkün değil mi?
    decompiler olayı vs geçtim artık

     

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Elif - Efe
    rakkoc
    rakkoc's avatar
    Kayıt Tarihi: 19/Aralık/2003
    Homo
    Asayisci bunu yazdı

    bunun mutlaka mantıklı bir yöntemi olması lazım.
    config dosyası içerisnde bağlantı stringinin olması çok aptalca.

    en azından bunu gizlemek mümkün değil mi?
    decompiler olayı vs geçtim artık

     

    config dosyasinin içinde ki string'i RSA ile sifrelemek için yöntemler mevcut ama cok verimli değil neden dersen application'in okudugu bir seyi kişi de illa okuyabilecektir. sadece zorlaştırmak mümkün.

    Bunun için web servis, web api gibi teknolojiler geliştiriliyor ki application session - permision düzeyine göre fonksionlar kullanılabilsin diye.

    web servis mimarilerini kullanmanın bir diğer gereksinimi de, sen connection  string confiden oradan buradan gizlersin, networku dinleyen birisi x,y,z yöntem ile yine kırar  (man in middle da farkli yöntemler ile) kırıldıktan sonra adama db yi altin tepside sunuyor olursun. 

    bu yuzden asla ve asla database portlarını applicaion serverlarin haric bir noktaya acmaman gerekir.


    Bu aralar fazla yogunum. Unuttugum seyler oluyorsa affola. DM vs atın.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cukurova
    cukurova's avatar
    Kayıt Tarihi: 21/Aralık/2003
    Erkek
    Asayisci bunu yazdı

    bunun mutlaka mantıklı bir yöntemi olması lazım.
    config dosyası içerisnde bağlantı stringinin olması çok aptalca.

    en azından bunu gizlemek mümkün değil mi?
    decompiler olayı vs geçtim artık

     

    Hocam, öncelikle config file kullanmak zorunda değilsin. Kodun içinde de bu tanımları yapabilirsin (internette ara, örneklerini bulabilirsin) ama yine isteyen bulur.  sizin projenin tasarım aşaması hatalı. Eskiden olduğu gibi artık server(db) - client tasarımlarda; güvenlik, verimlilik, yönetim... gibi nedenlerle client doğrudan db bağlanmıyor. server tarafında db önünde bir api, service vb. tarzı yapı ile client'dan gelen sorgulara cevap veriliyor. Böylelikle client, db server hakkında en ufak bir bilgi içermiyor. Doğrusuda bu ve sanırım siz zaten bunu biliyorsunuz.

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DE5TROY3R
    DE5TROY3R's avatar
    Kayıt Tarihi: 04/Nisan/2007
    Erkek

    Exe yolunu gösteriyorsun. Aşağıdaki gibi encrypt / decrpyt yapıyor.

    Projende herhangi bir kod gerektirmiyor.  Çözerken x makinesinde şifrelediysen y makinesinde şifresini çözemiyorsun diye biliyorum, bilen biri x makinesinde çözebilir:

     

    <connectionStrings>
        <add name="SecurePassDataBase" connectionString="Data Source=D-6058;
        Initial Catalog=DEMO_Test;User ID=sysdba;Password=xxxxxx" />
    </connectionStrings>

    <connectionStrings configProtectionProvider="DataProtectionConfigurationProvider">
        <EncryptedData>
          <CipherData>
            <CipherValue>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAATeylFe/
            xsUiVdcZvovEYDwQAAAACAAAAAAADZgAAwAAAABAAAABZsoaKP62hL85wpS+O3+
            znAAAAAASAAACgAAAAEAAAAHZ5NcKcDcWuEVDKyU4mz7J4AQAAAILD3fmIimyY2rkEkAdAtRn0dh9tI7+
            Y5+ILciikoSd/y2myUS88vJ59pIf82vOLk/0UwKL8TnHEaFTeX7SJ5par6pW7Pyhu4kKTEMyMUQsZX/
            h8RjNOnt+Q/kZIdqF2YWxFUP0RF3GWirvMNWS3do7IE0WaJ1W3wL+HhalglmKURWIGHsvJlybl+
            EGI8crPnli0W/yMN+fR0P/ndaTY87kR4+0gvKDWzZ/dMh8E7ZtodFzTQ4pjpl5YyRHH/
            Tc3oFUtimCnzXvCVT4ykK6NEQfPiPc5KJW6ajTEEGOrAXTnr9HF2wCRekE3WUVPYkeHRTjtuf
            2hUyvYx4eoGeOIAzFFXxY1GzZqhl8YaHlukZagiTVbfXA6Wh+K0dsAiOPz+wbCT92/
            blgsdkoKSMy8vRqFxAhX8HoW6KbJhsBPOvv36iBr1RecCpzUxWrVssS+wi/JclVfVs0nYb/
            pFidcJwhuwBsS6IzvV1tgrk8F9CUor+6DYHd/ABQAAABZjFi30hPRmKj+pvxFzjeNH+
            Dhhg==</CipherValue>
          </CipherData>
        </EncryptedData>
    </connectionStrings>

     

    Kaynak kodu (build edilmiş exe hali de içerisinde): https://www.codeproject.com/KB/dotnet/598863/EncryptDecryptAppConfigFile.zip

    Kaynak: https://www.codeproject.com/Tips/598863/EncryptionplusDecryptionplusConnectionplusStringpl

     

     

    DE5TROY3R tarafından 19/Ağu/20 11:58 tarihinde düzenlenmiştir
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    AsayisciAsayisci
    Asayisci
    Asayisci's avatar
    Kayıt Tarihi: 14/Eylül/2009
    Erkek
    DE5TROY3R bunu yazdı

    Exe yolunu gösteriyorsun. Aşağıdaki gibi encrypt / decrpyt yapıyor.

    Projende herhangi bir kod gerektirmiyor.  Çözerken x makinesinde şifrelediysen y makinesinde şifresini çözemiyorsun diye biliyorum, bilen biri x makinesinde çözebilir:

     

    <connectionStrings>
        <add name="SecurePassDataBase" connectionString="Data Source=D-6058;
        Initial Catalog=DEMO_Test;User ID=sysdba;Password=xxxxxx" />
    </connectionStrings>

    <connectionStrings configProtectionProvider="DataProtectionConfigurationProvider">
        <EncryptedData>
          <CipherData>
            <CipherValue>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAATeylFe/
            xsUiVdcZvovEYDwQAAAACAAAAAAADZgAAwAAAABAAAABZsoaKP62hL85wpS+O3+
            znAAAAAASAAACgAAAAEAAAAHZ5NcKcDcWuEVDKyU4mz7J4AQAAAILD3fmIimyY2rkEkAdAtRn0dh9tI7+
            Y5+ILciikoSd/y2myUS88vJ59pIf82vOLk/0UwKL8TnHEaFTeX7SJ5par6pW7Pyhu4kKTEMyMUQsZX/
            h8RjNOnt+Q/kZIdqF2YWxFUP0RF3GWirvMNWS3do7IE0WaJ1W3wL+HhalglmKURWIGHsvJlybl+
            EGI8crPnli0W/yMN+fR0P/ndaTY87kR4+0gvKDWzZ/dMh8E7ZtodFzTQ4pjpl5YyRHH/
            Tc3oFUtimCnzXvCVT4ykK6NEQfPiPc5KJW6ajTEEGOrAXTnr9HF2wCRekE3WUVPYkeHRTjtuf
            2hUyvYx4eoGeOIAzFFXxY1GzZqhl8YaHlukZagiTVbfXA6Wh+K0dsAiOPz+wbCT92/
            blgsdkoKSMy8vRqFxAhX8HoW6KbJhsBPOvv36iBr1RecCpzUxWrVssS+wi/JclVfVs0nYb/
            pFidcJwhuwBsS6IzvV1tgrk8F9CUor+6DYHd/ABQAAABZjFi30hPRmKj+pvxFzjeNH+
            Dhhg==</CipherValue>
          </CipherData>
        </EncryptedData>
    </connectionStrings>

     

    Kaynak kodu (build edilmiş exe hali de içerisinde): https://www.codeproject.com/KB/dotnet/598863/EncryptDecryptAppConfigFile.zip

    Kaynak: https://www.codeproject.com/Tips/598863/EncryptionplusDecryptionplusConnectionplusStringpl

     

     

    süper birşeymiş bayıldım

     

Toplam Hit: 1804 Toplam Mesaj: 7
winform