none
Masaüstü uygulama ile DigitalOcean DB arasında veri aktarımı [Web Servis] RRS feed

  • Soru

  • Merhaba;

    DigitalOcean üzerinde Centos Web Panel kurulu bir sunucum var. İçerisinde de MySQL veritabanım. c# masaüstü uygulamam ile SQLite ve SQLServer üzerindeki verilerden bazılarını derleyip toplayıp belirli periyotlarla bu MySQL'e gönderiyorum. Ve sunucudaki hazırladığım mobil uyumlu php bir script ile bu verileri mobilden anlık takip ediyorum.

    Fakat bunun pek güvenli bir yöntem olduğunu düşünmüyorum. (aşağıdaki yorum ndeniyle)

    bu yaklasim cok dogru degil pek.

    Yani uygulama üzerinden direk DB'ye ulasmak güvenlik acisindan hic tavsiye edilmeyen bir sey.

    Bunun yerine ara bir servis kullanip erismeniz daha dogru olacaktir.

    Yani bir tane webservis yazip, uygulamaniz web servis ile iletisime gecer, webservis de db ile.

    Ikisini de ayni yerde host ederseniz zaten yüksek bir güvenirlige gerek olmaz.

    Yukarıdaki yorum nedeniyle yöntemi değiştirmek istiyorum. Fakat yazmam gereken web servisin mantığını anlamadım. DigitalOcean üzerinde tuttuğum webservis'e nasıl veri göndereceğim ve bu webservis nasıl DB'ye gönderdiğim verileri yazacak ?

    İncelemem gereken bir link de verseniz olur benim için... 

    7 Aralık 2019 Cumartesi 17:56

Yanıtlar

  • Sunucudaki db'ye erişmeyi geçtim localde bile asla şifre vs uygulama içinde saklanmamalı. Tersine mühendislikle uygulamının içinden giriş bilgilerini alan kişi dbye rahatlıkla erişir.

    Sunucudaki veritabanına doğrudan erişmek yerine REST API/Web Servis/API gibi aracı bir yapı ile erişirsen daha güvende olursun. Hatta bu API'yi geliştirip başka uygulamalar bile yazarsın (mobil app vs)

    Peki bir API nasıl yazarım?

    Olay en basit haliyle HTTP isteği yapıp almakla ilgili. GET, POST, PUT, DELETE, PATCH gibi istekler yapıp (CRUD gibi düşün) sunucu tarafından bunları karşılaman gerek. Burada PHP ile nasıl bir servis yapılır diye anlatmışlar. Eğer laravel kullandıysan slim framework ile hızlıca bir api yazabilirsin.

    Son olarak C# ile çalışıyorsan sunucu tarafında da C# kullanmanı tavsiye ederim. PHP spagettiye çok yatkın bir dil, sürekli maintain etmeni gerektirir üstelik güvenlik konusu da başka bir mesele (PHP'ye yabancıysan hata yapma riskin artar, sonuçta bir öğrenme süreci gerektirecek.)


    TR| Sorunuzun yanıtı bu ise "Yanıt Olarak Öner" olarak işaretleyin, eğer faydalı bir yorum ise "Oy Ver"erek forumun işleyişine katkıda bulunabilirsiniz. EN| If this is the answer to your problem, mark "Propose as Answer" and if it is helpful, you can contribute to the workig of the forum by "Voting".

    • Yanıt Olarak İşaretleyen XentoX 8 Aralık 2019 Pazar 17:29
    8 Aralık 2019 Pazar 06:48

Tüm Yanıtlar

  • Sunucudaki db'ye erişmeyi geçtim localde bile asla şifre vs uygulama içinde saklanmamalı. Tersine mühendislikle uygulamının içinden giriş bilgilerini alan kişi dbye rahatlıkla erişir.

    Sunucudaki veritabanına doğrudan erişmek yerine REST API/Web Servis/API gibi aracı bir yapı ile erişirsen daha güvende olursun. Hatta bu API'yi geliştirip başka uygulamalar bile yazarsın (mobil app vs)

    Peki bir API nasıl yazarım?

    Olay en basit haliyle HTTP isteği yapıp almakla ilgili. GET, POST, PUT, DELETE, PATCH gibi istekler yapıp (CRUD gibi düşün) sunucu tarafından bunları karşılaman gerek. Burada PHP ile nasıl bir servis yapılır diye anlatmışlar. Eğer laravel kullandıysan slim framework ile hızlıca bir api yazabilirsin.

    Son olarak C# ile çalışıyorsan sunucu tarafında da C# kullanmanı tavsiye ederim. PHP spagettiye çok yatkın bir dil, sürekli maintain etmeni gerektirir üstelik güvenlik konusu da başka bir mesele (PHP'ye yabancıysan hata yapma riskin artar, sonuçta bir öğrenme süreci gerektirecek.)


    TR| Sorunuzun yanıtı bu ise "Yanıt Olarak Öner" olarak işaretleyin, eğer faydalı bir yorum ise "Oy Ver"erek forumun işleyişine katkıda bulunabilirsiniz. EN| If this is the answer to your problem, mark "Propose as Answer" and if it is helpful, you can contribute to the workig of the forum by "Voting".

    • Yanıt Olarak İşaretleyen XentoX 8 Aralık 2019 Pazar 17:29
    8 Aralık 2019 Pazar 06:48
  • Teşekkür ederim bilgi verdiğiniz için...
    8 Aralık 2019 Pazar 17:29