Panduan Praktik Terbaik Keamanan
Panduan produksi untuk mengamankan autentikasi wajah, login dengan pengenalan wajah, pemeriksaan liveness, perlindungan PIN, pembatasan domain, dan alur akun berbasis webhook dengan FACEIO.
Buka Application Manager untuk mengonfigurasi validasi PIN Code, liveness, domain yang diizinkan, validasi header permintaan, dan pengiriman webhook.
Rancang Autentikasi Wajah yang Aman Sejak Awal
Konfigurasikan FACEIO Widget, fio.js, dan kontrol backend sebelum mengaktifkan autentikasi wajah untuk pengguna produksi.
Amankan Seluruh Alur Autentikasi
Autentikasi wajah adalah bagian dari batas akses akun Anda. Perlakukan konfigurasi FACEIO, integrasi fio.js, liveness, aturan PIN Code, pembatasan domain, validasi webhook, dan pemulihan akun sebagai satu model keamanan produksi.
Praktik ini membahas penggunaan Widget tanpa izin, PIN yang lemah, serangan presentasi, pendaftaran berulang, dan sinkronisasi backend. Konfigurasikan opsi dalam panduan ini melalui Application Manager di FACEIO Console ↗.
Mulai dengan panduan Memulai dan Panduan Integrasi fio.js, lalu gunakan halaman ini sebagai checklist keamanan produksi sebelum mengaktifkan login dengan pengenalan wajah untuk pengguna nyata. Untuk pertanyaan implementasi, gunakan forum komunitas ↗ atau buka permintaan dukungan pribadi dari Console ↗.
Checklist Keamanan Produksi
Sebelum meluncurkan autentikasi wajah FACEIO ke produksi, pastikan aplikasi Anda memiliki alur keamanan akun yang lengkap di sekitar widget, bukan hanya integrasi sisi klien yang berfungsi.
- Batasi origin: aktifkan pembatasan domain dan tolak header Origin atau Referer yang tidak ada sebelum mengekspos Public ID Anda.
- Aktifkan liveness: gunakan perlindungan spoofing wajah untuk alur login, onboarding, pemulihan akun, dan verifikasi tambahan yang sensitif.
- Rencanakan perilaku PIN: tentukan kapan konfirmasi PIN wajib, bagaimana percobaan gagal ditangani, dan bagaimana pemulihan akun bekerja.
- Hubungkan peristiwa backend: gunakan webhook FACEIO untuk peristiwa pendaftaran, autentikasi, dan penghapusan Facial ID yang memengaruhi status akun.
- Lindungi pengguna terdaftar: dokumentasikan cara produk Anda menangani Facial ID, penghapusan, pelepasan tautan akun, dan percobaan autentikasi mencurigakan.
- Tinjau kontrol privasi: baca halaman ini bersama panduan praktik terbaik privasi sebelum mengaktifkan pendaftaran untuk pengguna akhir.
Pengaturan Keamanan Aplikasi FACEIO
Tinjau setiap pengaturan keamanan FACEIO berdasarkan alur login, pemulihan, dan aturan otorisasi backend situs web atau aplikasi web Anda. Konfigurasikan opsi ini di FACEIO Application Manager ↗.
Tolak Kode PIN Lemah Saat Pendaftaran
Saat pendaftaran, setiap pengguna menetapkan PIN Code yang dapat diminta FACEIO selama autentikasi. Menolak PIN Code yang lemah mencegah nilai umum melemahkan langkah validasi tambahan ini.
- Tolak pola umum seperti
0000,1111dan1234. - Pisahkan PIN dari kata sandi, nomor telepon, tanggal lahir, atau data profil lainnya.
- Gunakan konfirmasi PIN sebagai sinyal step-up yang terkontrol, bukan pengganti pemulihan akun dan otorisasi sisi server.
Jika penolakan PIN lemah diaktifkan, pengguna harus memilih kode yang lebih kuat sebelum pendaftaran berlanjut. Gabungkan pengaturan ini dengan kebijakan konfirmasi PIN di bawah untuk aplikasi sensitif.
Cegah Pendaftaran Berulang dalam Aplikasi yang Sama
Saat diaktifkan, opsi ini memeriksa apakah orang tersebut tampaknya sudah terdaftar dalam aplikasi FACEIO yang sama. Jika duplikat terdeteksi, pendaftaran dibatalkan dan kode error fioErrCode.FACE_DUPLICATION dikembalikan ke aplikasi host Anda. Deteksi duplikat adalah hasil pengenalan, bukan jaminan bahwa setiap pendaftaran berulang akan teridentifikasi. Pertahankan opsi ini untuk
alur yang memetakan satu orang ke satu akun atau satu Facial ID dalam aplikasi Anda.
Liveness dan Perlindungan Spoofing Wajah
Pengaturan liveness: aktifkan perlindungan ini ketika alur autentikasi memerlukan deteksi serangan presentasi.
Saat diaktifkan, fitur ini membantu melawan serangan presentasi dari foto, gambar cetak, video yang diputar ulang, layar ponsel, masker, dan upaya spoofing serupa. Tidak ada lapisan deteksi yang boleh dianggap sebagai jaminan tunggal, jadi aplikasi Anda harus menentukan cara menangani sesi mencurigakan. Jika serangan presentasi terdeteksi, FACEIO mengembalikan
kode error fioErrCode.PAD_ATTACK sehingga backend Anda dapat menolak akses, mengizinkan percobaan ulang, atau mengarahkan sesi untuk ditinjau.
Untuk autentikasi biometrik di situs dan aplikasi seluler, deteksi liveness harus menjadi bagian dari perjalanan pengguna dan keputusan risiko backend. Jangan perlakukan hasil anti-spoofing yang gagal sebagai error login biasa.
- Catat peristiwa di sisi server saat memengaruhi akses akun atau penilaian penipuan.
- Hindari memberikan detail kepada penyerang tentang sinyal anti-spoofing yang gagal.
- Gunakan webhooks dan pemantauan aplikasi untuk menghubungkan kegagalan berulang dengan aktivitas akun yang mencurigakan.
Padukan anti-spoofing dengan pembatasan domain, kebijakan PIN, pembatasan laju, dan jalur fallback yang jelas bagi pengguna sah yang kondisi kamera, pencahayaan, atau perangkatnya memerlukan percobaan lain.
Terapkan Usia Minimum Saat Pendaftaran
Saat diaktifkan, opsi ini menerapkan hasil estimasi usia FACEIO selama pendaftaran dan mengembalikan fioErrCode.MINORS_NOT_ALLOWED ketika hasil berada di bawah batas minimum yang dikonfigurasi. Estimasi usia bersifat probabilistik dan tidak boleh dianggap sebagai usia pasti atau jaminan kelayakan hukum.
Aktifkan pengaturan ini dari FACEIO Console ↗ hanya ketika estimasi usia merupakan sinyal pendaftaran yang sesuai. Pemilik aplikasi tetap bertanggung jawab atas pemberitahuan, persetujuan, tinjauan hukum, dan pemeriksaan usia atau kelayakan terpisah.
Selalu Minta Kode PIN Saat Autentikasi
Direkomendasikan untuk Aplikasi Sensitif: Pertahankan opsi ini untuk perbankan, fintech, portal admin, pemulihan akun, pembayaran, dan alur sensitif lainnya.
Saat autentikasi, FACEIO dapat meminta pengguna mengonfirmasi PIN setelah verifikasi wajah. Jika opsi ini dimatikan dan pencocokan wajah cukup jelas menurut kebijakan yang Anda konfigurasi, sesi dapat berlanjut tanpa permintaan PIN tambahan.
Jika opsi ini diaktifkan, pengguna harus mengonfirmasi PIN sebelum FACEIO menyelesaikan autentikasi. Setelah beberapa percobaan tidak valid, FACEIO membatalkan alur dan mengembalikan kode error yang sesuai. Backend Anda tetap bertanggung jawab atas keputusan akses, pembatasan laju, dan pemulihan akun.
Terapkan Keunikan Kode PIN Antar Pengguna
Saat pendaftaran, setiap pengguna dapat menetapkan PIN minimal 4 dan maksimal 16 digit. Jika keunikan PIN diaktifkan, FACEIO menolak PIN yang sudah digunakan pengguna terdaftar lain dalam aplikasi yang sama. Ini mengurangi risiko nilai fallback bersama menjadi titik lemah dalam alur autentikasi wajah Anda.
Abaikan Wajah yang Tertutup atau Tersamarkan Sebagian
Secara default, wajah yang terhalang, tangkapan dengan pencahayaan buruk, dan wajah yang tertutup sebagian dibuang dari proses pengenalan. FACEIO meminta frame lain sampai wajah yang terlihat jelas terdeteksi. Pertahankan perilaku ketat ini untuk autentikasi biometrik produksi kecuali aplikasi Anda memiliki alasan aksesibilitas atau operasional tertentu untuk melonggarkannya.
Tolak Header Permintaan HTTP Origin/Referer yang Hilang atau Kosong
Saat diaktifkan, opsi ini menolak instansiasi fio.js saat permintaan browser tidak memiliki header Origin ↗ atau
Referer ↗. Perlakukan ini sebagai kontrol dasar terhadap permintaan palsu atau tidak normal, lalu gunakan pembatasan domain untuk membatasi lokasi Public ID aplikasi Anda dapat digunakan.
Batasi Instansiasi Widget Hanya ke Domain yang Diizinkan
Saat diaktifkan, opsi ini membatasi instansiasi fio.js ke nama domain yang Anda izinkan. Domain lain tidak dapat menggunakan Public ID aplikasi Anda untuk memulai pendaftaran atau autentikasi FACEIO. Konfigurasikan daftar domain yang diizinkan dari
Application Manager ↗ sebelum peluncuran produksi.
Batasi Instansiasi Widget Hanya ke Negara yang Diizinkan
Saat diaktifkan, opsi ini membatasi instansiasi fio.js ke negara yang Anda tentukan. Gunakan saat layanan Anda memiliki batas geografis atau persyaratan regional. Konfigurasikan negara yang diizinkan dengan kode ISO 3166-1 dari
Application Manager ↗.
Aktifkan Webhook
Webhook memungkinkan backend menerima peristiwa dari FACEIO Widget agar catatan tetap sinkron dengan pendaftaran baru, autentikasi wajah yang berhasil, dan penghapusan Facial ID.
Detail Peristiwa Webhook
Saat peristiwa terjadi, FACEIO mengirim permintaan HTTP POST ke URL webhook yang dikonfigurasi. Bergantung pada peristiwanya, payload dapat berisi:
- Facial ID unik pengguna terkait
- Jenis kelamin dan usia (saat pendaftaran baru)
- Timestamp, jenis peristiwa, informasi IP
- Payload terkait, jika tersedia
Pelajari Lebih Lanjut Tentang Webhook
Konfigurasikan endpoint webhook di FACEIO Application Manager, lalu validasi peristiwa webhook di sisi server sebelum mengubah status akun.
Konfigurasikan Kontrol Keamanan FACEIO
Sebelum produksi, buat aplikasi, batasi domain yang diizinkan, konfigurasikan liveness dan validasi Kode PIN, lalu verifikasi kontrol backend yang digunakan alur Anda.