Keamanan dan privasi

Saat membuat formulir, Anda menggunakan data pengguna. Perhatian utama Anda adalah memastikan bahwa data pengguna dijaga kerahasiaannya dan ditransfer dengan aman. Mari kita lihat apa yang dapat dilakukan.

Memastikan keamanan formulir Anda

Sebagai langkah pertama, pastikan untuk meminta data sesedikit mungkin. Jangan meminta data yang tidak Anda butuhkan, dan selalu mempertanyakan apakah Anda memerlukan semua data yang diminta. Lebih sedikit data berarti lebih sedikit risiko, lebih sedikit biaya, dan lebih sedikit kewajiban. Selain itu, mengurangi jumlah kolom dalam formulir akan membuatnya tidak terlalu rumit, lebih mudah diisi, dan dapat mengurangi rasio pengabaian.

Selalu gunakan HTTPS, terutama untuk halaman yang menyertakan formulir. Dengan HTTPS, data dienkripsi saat berasal dari server dan saat kembali ke server.

Misalnya Anda sedang duduk di kafe menggunakan Wi-Fi publik. Anda membuka situs e-commerce dan mengisi informasi kartu kredit untuk membeli sesuatu. Jika situs menggunakan HTTP, siapa pun (yang memiliki keterampilan untuk melakukannya) di Wi-Fi publik yang sama dapat melihat informasi kartu kredit Anda. Jika situs menggunakan HTTPS, data akan dienkripsi dan karenanya dilindungi dari siapa pun yang mencoba mengaksesnya.

Di situs, Anda juga harus memastikan untuk mengalihkan setiap permintaan HTTP ke HTTPS. Pelajari lebih lanjut cara mengalihkan semua traffic ke HTTPS.

Membantu pengguna menjaga privasi data mereka

Pada modul pertama, Anda telah mempelajari dua cara yang mungkin dilakukan untuk mentransfer data: menggunakan permintaan GET dan menggunakan permintaan POST.

Dengan permintaan GET, data formulir disertakan sebagai string kueri dalam URL permintaan. Jika Anda mengirimkan formulir yang menggunakan permintaan GET, browser akan menambahkan URL permintaan termasuk data formulir ke histori penjelajahan Anda. Ini praktis jika Anda ingin melihat pengiriman formulir sebelumnya, misalnya untuk formulir penelusuran. Tidak bagus sama sekali, jika data sensitif dikirimkan, dan semua orang yang memiliki akses ke riwayat browser atau jaringan lokal Anda dapat melihat informasi ini.

Gunakan permintaan POST untuk setiap formulir yang digunakan untuk mengirimkan data yang bersifat pribadi atau sensitif. Dengan cara ini, data hanya terlihat oleh skrip backend yang memprosesnya.

Bagaimana dengan menyimpan dan memproses data pribadi secara langsung di browser? Anda dapat menggunakan penyimpanan klien, misalnya, localStorage untuk menyimpan data pribadi di browser. Terkait privasi, ini kurang ideal. Sekali lagi, semua orang yang memiliki akses ke browser Anda dapat membaca informasi ini. Anda hanya boleh menyimpan nilai yang dienkripsi untuk data pribadi.

Pastikan pengguna dapat mendaftar dan login dengan aman

Autentikasi akun pengguna adalah masalah yang kompleks dalam hal privasi dan keamanan. Mungkin lebih baik gunakan penyedia identitas pihak ketiga daripada membuat sistem autentikasi aman Anda sendiri.

Pelajari lebih lanjut praktik terbaik untuk autentikasi akun dan pengelolaan sandi.

Membantu pengguna mengakses data pribadi mereka

Banyak wilayah memiliki hukum dan peraturan terkait perlindungan dan privasi data, termasuk CCPA di California dan PDPA di India. Setiap situs yang tersedia di Uni Eropa (EU) harus mematuhi General Data Protection Regulation (GDPR), meskipun situs tersebut tidak berbasis di Uni Eropa.

GDPR menetapkan pedoman untuk pengumpulan dan pemrosesan informasi pribadi dari orang yang tinggal di Uni Eropa. Izin diperlukan untuk memproses data pribadi, pengguna dapat meminta informasi pribadi yang Anda simpan kapan saja, dan Anda harus mengumumkan kebocoran data secara resmi. Hal yang baik bagi pengguna, karena ini membantu memastikan bahwa privasi mereka dihormati. Pelajari GDPR lebih lanjut.

Pastikan pengguna mengetahui bagaimana Anda berencana untuk memproses data pribadi. Transparansi adalah kunci untuk mempercayai. Pengguna harus selalu dapat mengakses, mengubah, dan menghapus semua data yang Anda simpan untuk mereka.

Memastikan pengguna dapat memperbarui data pribadi mereka

Permudah pengguna untuk memperbarui data pribadi mereka, termasuk sandi, alamat email, dan nama pengguna. Memberi tahu pengguna tentang perubahan pada data pribadi mereka yang tersimpan, dan memastikan pengguna dapat mencabut perubahan tersebut. Misalnya, mengirim email ke alamat email sebelumnya dan yang baru setelah pengguna mengubah alamat email mereka.

Permudah pengguna untuk menghapus akun mereka, termasuk semua data terkait, dan jika relevan, izinkan mereka untuk mendownload data. Penghapusan akun adalah persyaratan hukum di beberapa wilayah.

Mengharuskan langkah autentikasi tambahan, misalnya, memasukkan kembali sandi saat ini, untuk melihat atau mengubah informasi pribadi di situs Anda.

Cari tahu selengkapnya: Praktik Terbaik Privasi Aplikasi Web.

Memastikan semua data dalam kondisi baik

Dalam modul sebelumnya, Anda telah mempelajari validasi di frontend. Validasi frontend penting, tetapi pengguna mungkin masih dapat mengirimkan data yang tidak valid. Sebagai langkah berikutnya, Anda juga harus memvalidasi data di backend sebelum menyimpan data di database Anda. Hal ini memastikan bahwa tidak ada data yang tidak valid yang disimpan di database Anda.

Validasi membantu memastikan format data valid, tetapi Anda tetap tidak boleh memercayai data yang dimasukkan oleh pengguna. Bagaimana cara menghasilkan output data dengan aman? Untuk mencegah Pembuatan Skrip Lintas Situs (XSS), dan memastikan semua data aman untuk disertakan dalam HTML, Anda harus membersihkan data sebelum output.

Pelajari lebih lanjut cara membersihkan data sebelum output dan, jika memungkinkan, gunakan Sanitizer API.

Pastikan semua kiriman berasal dari orang sungguhan

Untuk membantu melindungi data, Anda memiliki berbagai opsi untuk mencegah pengiriman spam dari bot.

Opsi pertama adalah menggunakan layanan seperti reCAPTCHA, untuk membedakan antara orang dan bot yang sebenarnya. Ini mengharuskan Anda untuk menyertakan cuplikan JavaScript di halaman, dan menambahkan atribut ekstra ke tombol Submit.

reCAPTCHA melakukan berbagai pemeriksaan untuk mengetahui apakah Anda adalah manusia. Misalnya, fitur ini mungkin meminta Anda mengidentifikasi gambar. Software otomatis, seperti bot, tidak dapat menyelesaikan tantangan ini dan tidak dapat mengirimkan formulir.

Pot madu

Pilihan lain adalah menggunakan 'honeypot': bidang formulir yang tersembunyi secara visual. Manusia tidak akan melihat bidang pot madu, tetapi bot akan mengisinya. Di backend, skrip pemrosesan Anda dapat memeriksa apakah kolom sudah dilengkapi. Jika ya, pengiriman mungkin berasal dari bot, dan Anda dapat mengabaikannya.

Ada juga layanan seperti Akismet, yang dapat membantu Anda melindungi dari spam. Filter Akismet berfungsi dengan menggabungkan informasi tentang spam yang ditangkap di semua situs yang berpartisipasi, lalu menggunakan aturan spam tersebut untuk memblokir spam pada masa mendatang. Akismet bersifat transparan bagi pengguna, dan mendeteksi sebagian besar spam.

Menguji pemahaman Anda

Uji pengetahuan Anda tentang keamanan dan privasi

Apa metode yang lebih disukai untuk mentransfer data pribadi menggunakan formulir?

Permintaan POST.
🎉
Merpati pembawa.
Coba lagi.
Permintaan GET.
Coba lagi.
HTTPS
Coba lagi.

Bagaimana cara mencegah spam?

CAPTCHA
🎉
Kolom formulir Honeypot.
🎉
Layanan spam.
🎉
Hanya menyajikan formulir vegetarian.
Coba lagi.

Referensi