Kemungkinan Duplikat:
Menulis aplikasi "server kurang" Web
Jadi, katakanlah saya akan membangun klon Stack Exchange dan saya memutuskan untuk menggunakan sesuatu seperti CouchDB sebagai toko backend saya. Jika saya menggunakan otentikasi bawaan dan otorisasi tingkat basis data, apakah ada alasan untuk tidak mengizinkan Javascript sisi klien untuk menulis langsung ke server CouchDB yang tersedia untuk umum? Karena ini pada dasarnya adalah aplikasi CRUD dan logika bisnis terdiri dari "Hanya penulis yang dapat mengedit posting mereka" Saya tidak melihat banyak kebutuhan untuk memiliki lapisan antara hal-hal sisi klien dan database. Saya hanya akan menggunakan validasi di sisi CouchDB untuk memastikan seseorang tidak memasukkan data sampah dan memastikan bahwa izin diatur dengan benar sehingga pengguna hanya dapat membaca data pengguna _ mereka sendiri. Render akan dilakukan sisi klien dengan sesuatu seperti AngularJS. Intinya Anda hanya bisa memiliki server CouchDB dan banyak halaman "statis" dan Anda siap melakukannya. Anda tidak memerlukan pemrosesan sisi server apa pun, hanya sesuatu yang dapat melayani halaman HTML.
Membuka basis data saya ke dunia tampaknya salah, tetapi dalam skenario ini saya tidak dapat memikirkan mengapa selama izin ditetapkan dengan benar. Itu bertentangan dengan naluriku sebagai pengembang web, tapi aku tidak bisa memikirkan alasan yang bagus. Jadi, mengapa ini ide yang buruk?
EDIT: Sepertinya ada diskusi serupa di sini: Menulis aplikasi Web "server kurang"
EDIT: Diskusi yang luar biasa sejauh ini, dan saya menghargai umpan balik semua orang! Saya merasa saya harus menambahkan beberapa asumsi umum daripada memanggil CouchDB dan AngularJS secara khusus. Jadi mari kita asumsikan bahwa:
- Basis data dapat mengotentikasi pengguna langsung dari toko tersembunyi
- Semua komunikasi basis data akan terjadi melalui SSL
- Validasi data dapat (tetapi mungkin tidak?) Ditangani oleh database
- Satu-satunya otorisasi yang kami pedulikan selain fungsi admin adalah seseorang hanya diizinkan mengedit posting mereka sendiri
- Kami baik-baik saja dengan semua orang dapat membaca semua data (KECUALI catatan pengguna yang mungkin berisi hash kata sandi)
- Fungsi administratif akan dibatasi oleh otorisasi basis data
- Tidak ada yang bisa menambahkan diri mereka ke peran administrator
- Basis data relatif mudah untuk diukur
- Ada sedikit atau tidak ada logika bisnis sejati; ini adalah aplikasi CRUD dasar
DELETE FROM ImportantData;