Saya tidak memiliki banyak expierence dengan aplikasi desktop, tetapi jika saya harus membuat aplikasi desktop server klien, akses data akan dilakukan melalui layanan web. Saya percaya akses data melalui layanan web memberikan keamanan - Saya tidak perlu memasukkan nama pengguna dan kata sandi server db dll.
Sebelum layanan web, bagaimana aplikasi database melakukan ini? Apakah semua informasi db penting diteruskan ke instalasi aplikasi desktop? Jika demikian, bagaimana programmer mengatur aspek keamanan? Atau apakah programmer menggunakan sesuatu yang mirip dengan layanan web?
programming-practices
security
Howl Hagrid
sumber
sumber
Jawaban:
Tergantung pada apa yang Anda sebut layanan web.
Sebelum WSDL dan REST, masih ada HTTP, jadi pada dasarnya semua yang dapat Anda lakukan sekarang dapat dilakukan sebelumnya juga.
Ada kurangnya keseragaman (itulah sebabnya WSDL dan REST dibuat di tempat pertama), tetapi memberikan tingkat kerahasiaan dan keamanan data yang sama yang Anda bicarakan.
Anda sebenarnya dapat menghindari menggunakan HTTP juga: Anda dapat membuat draft protokol Anda sendiri, dan menggunakan server khusus dan klien khusus yang akan membuka soket ke server ini dan mendapatkan data yang mereka butuhkan (atau memposting data). Di sini, Anda kehilangan semua manfaat standardisasi HTTP, tetapi sekali lagi, Anda tidak memberikan akses ke database untuk klien.
sumber
Ah, dulu ketika kita punya tongkat dan batu.
Sebelum Internet, kami memiliki sesuatu yang disebut arsitektur "klien / server" dan Jaringan Area Lokal. Jika Anda tidak mencoba membuat koneksi dengan server beberapa mil jauhnya, jaringan ini bekerja dengan sangat baik untuk mencapai hampir semua hal. Anda bahkan dapat membuat huruf drive dan menggunakan koneksi ke server file seperti hard drive jarak jauh, jika Anda mau. Jika Anda berada beberapa mil jauhnya, Anda bisa menggunakan Wide Area Network untuk melakukan dasarnya hal yang sama, meskipun pada kecepatan yang lebih lambat dan dengan biaya yang lebih besar.
Cara murah untuk berbicara dari jarak jauh adalah dengan mengirimkan informasi melalui saluran telepon menggunakan perangkat yang disebut modem, dan jika Anda ingin mengaitkan sesuatu di mana dua komputer saling berbicara melalui aplikasi komputer, Anda melakukannya dengan cara yang sama seperti Anda melakukannya hari ini: dengan membangun protokol komunikasi. Tidak ada yang ajaib sama sekali tentang itu; kedua belah pihak hanya harus menyetujui apa artinya semua byte.
Dari tahap awal Internet, ada cara bagi mesin untuk berkomunikasi melewatinya. Layanan Web hanyalah cita rasa terbaru dalam seminggu.
sumber
Hanya untuk menjernihkan beberapa konsep terlebih dahulu ...
Saya pikir Anda sedang menggabungkan konsep (1) Transport Layer Security (TLS) dan (2) kontrol akses dalam pernyataan di atas ... Apakah nama pengguna dan kata sandi perlu diberikan atau tidak tidak terkait dengan apakah layanan web disediakan melalui (1) saluran terenkripsi dan (2) otentikasi (misalnya kunci API).
Layanan web yang ditulis dengan sangat buruk mungkin masih memerlukan kata sandi untuk dikirim dalam bentuk plaintext melalui HTTP. Seseorang yang ditulis dengan buruk dapat melakukannya di atas HTTPS (aman, tetapi sekali rusak, misalnya melalui serangan manusia-di-tengah , terbuka untuk penyalahgunaan). Layanan web yang ditulis lebih baik harus menangani konektivitas basis data secara internal berdasarkan input lain, misalnya ID sesi, setelah otentikasi dan kontrol hak divalidasi.
Kembali ke poin utama, komentar @ marcus pada pertanyaan Anda pada dasarnya adalah itu. Aspek keamanan ditangani dengan tidak berbeda dari teknologi "modern", dan itu mencakup pertanyaan implementasi seperti:
X.X.X.X
dengan nama pengguna dan kata sandi, lalu jalankan kueriINSERT INTO user_address ...
?Untuk informasi lebih lanjut:
sumber