Apakah Anda menggunakan teknik validasi sisi Klien dan sisi Server?

10

Apakah Anda menggunakan teknik validasi sisi klien dan sisi server secara berdampingan saat memvalidasi input dari pengguna, misalnya melalui formulir kontak?

Jika demikian, apakah ini benar-benar perlu? Apakah Anda over engineering?

TehMinumGeek
sumber
Ini menarik: smashingmagazine.com/2009/07/07/…
TeaDrinkingGeek

Jawaban:

27

Ya, dan kamu harus.

Ini menjaga umpan balik pengguna instan tanpa membuang-buang postback sementara juga menjaga terhadap pengguna menonaktifkan JavaScript.

Ini adalah cara kerja Kontrol Validasi ASP.NET .

Hal ini tentu saja tidak over-engineering karena menggunakan satu tanpa yang lain memiliki kekurangan.

billy.bob
sumber
8
+1. Tidak ada alasan untuk tidak memiliki imo validasi sisi server.
DBlackborough
11
Sisi server diperlukan, sisi klien adalah kenyamanan. Dalam aplikasi web Anda tidak dapat mengandalkan validasi sisi klien.
BillThor
@ BillThor - Yup, itu benar sekali
billy.bob
pengguna yang cerdas pasti dapat menyalahgunakan aplikasi Anda jika Anda tidak memiliki validasi sisi klien
Umair
6

Jika demikian, apakah ini benar-benar perlu?

Iya.

Apakah Anda over engineering?

Tidak.

Validasi front-end dapat memberikan umpan balik langsung jika itu antarmuka yang kaya.

Back-end dapat digunakan oleh banyak ujung depan. Dan itu satu - satunya validasi untuk paket cadangan HTML-saja (tanpa javascript).

S.Lott
sumber
6

Salah satu dasar pertama yang saya pelajari tentang keamanan adalah bahwa peretas tidak akan pernah menggunakan UI Anda.

Validasi pihak klien biasanya dapat dengan mudah dilewati di aplikasi web jika mereka memiliki versi lokal Anda sendiri dari formulir Anda dan kemudian mengirimkannya kembali ke server Anda.

Validasi sisi klien sangat bagus untuk meningkatkan pengalaman pengguna Anda dan mengurangi bolak-balik yang tidak perlu ke server untuk melakukan validasi.

Bruce McLeod
sumber
+1, saya telah melihat banyak contoh di mana validasi dilakukan sepenuhnya di sisi klien
Karl
2

Validasi sisi server harus minimal.

Dan untuk input yang kemungkinan salah, Anda juga harus menambahkan cek sisi klien ..

Misalnya: periksa apakah email diformat dengan benar di sisi klien dan server tetapi memeriksa apakah uniknya bisa berupa pemeriksaan sisi server.

Carra
sumber
1
"Memeriksa itu tidak benar" adalah verifikasi BUKAN validasi sehingga ini tidak berlaku. Pahami perbedaannya.
billy.bob
2
Apakah Anda bahkan membaca apa yang Anda posting? Memeriksa bahwa email itu unik adalah validasi. Cheking, katakanlah, bahwa email dan kata sandi adalah kredensial yang valid adalah verifikasi. Bagaimanapun, itu hanya masalah terminologi.
Andrea
1

Ya, itu bukan ide yang buruk untuk menggunakan keduanya. Jika kesalahan input pengguna sederhana dapat ditangkap di sisi klien maka masuk akal untuk memberi tahu pengguna tentang kesalahan tersebut sebelum mengirim data dan menyadap server Anda. Misalnya, jika pengguna memasukkan sesuatu yang tidak terlihat seperti alamat email di bidang 'email' atau memasukkan string yang panjangnya hanya 5 karakter di bidang kata sandi dan Anda tahu situs Anda memerlukan kata sandi setidaknya sepanjang 6 karakter, maka Anda harus memberi tahu pengguna tentang hal itu sebelum mengirim sesuatu ke server.

Penting juga menduplikasi validasi yang sama persis di server karena 2 alasan: 1) bagaimana jika pengguna menonaktifkan Javascript?

2) Pengguna dengan jahat mencoba mem-bypass validasi sisi klien Anda, yang sangat mudah.

Dmitri
sumber