Check out what’s new from Firebase at Google I/O 2022. Learn more

Aktifkan Pemeriksaan Aplikasi dengan reCAPTCHA v3 di aplikasi web

Halaman ini menunjukkan cara mengaktifkan App Check di aplikasi web, menggunakan penyedia reCAPTCHA v3 bawaan. Saat mengaktifkan App Check, Anda membantu memastikan bahwa hanya aplikasi Anda yang dapat mengakses sumber daya Firebase proyek Anda. Lihat Ikhtisar fitur ini.

reCAPTCHA v3 adalah layanan tanpa biaya. App Check juga mendukung reCAPTCHA Enterprise , layanan berbayar dengan kuota tanpa biaya. Untuk mempelajari perbedaan antara reCAPTCHA v3 dan reCAPTCHA Enterprise, lihat perbandingan fitur .

Perhatikan bahwa reCAPTCHA v3 tidak terlihat oleh pengguna. Penyedia reCAPTCHA v3 tidak akan mengharuskan pengguna untuk memecahkan tantangan kapan saja. Lihat dokumentasi reCAPTCHA v3 .

Jika Anda ingin menggunakan App Check dengan penyedia kustom Anda sendiri, lihat Menerapkan penyedia App Check kustom .

1. Siapkan proyek Firebase Anda

  1. Tambahkan Firebase ke proyek JavaScript Anda jika Anda belum melakukannya.

  2. Daftarkan situs Anda untuk reCAPTCHA v3 dan dapatkan kunci situs dan kunci rahasia reCAPTCHA v3 Anda.

  3. Daftarkan aplikasi Anda untuk menggunakan App Check dengan penyedia reCAPTCHA di bagian App Check di Firebase console. Anda harus memberikan kunci rahasia yang Anda dapatkan di langkah sebelumnya.

    Anda biasanya perlu mendaftarkan semua aplikasi proyek Anda, karena setelah Anda mengaktifkan penerapan untuk produk Firebase, hanya aplikasi terdaftar yang dapat mengakses sumber daya backend produk.

  4. Opsional : Dalam pengaturan pendaftaran aplikasi, setel waktu-untuk-langsung (TTL) khusus untuk token Pemeriksaan Aplikasi yang dikeluarkan oleh penyedia. Anda dapat mengatur TTL ke nilai apa pun antara 30 menit dan 7 hari. Saat mengubah nilai ini, perhatikan pengorbanan berikut:

    • Keamanan: TTL yang lebih pendek memberikan keamanan yang lebih kuat, karena mengurangi jendela di mana token yang bocor atau dicegat dapat disalahgunakan oleh penyerang.
    • Performa: TTL yang lebih pendek berarti aplikasi Anda akan melakukan pengesahan lebih sering. Karena proses pengesahan aplikasi menambahkan latensi ke permintaan jaringan setiap kali dilakukan, TTL singkat dapat memengaruhi kinerja aplikasi Anda.
    • Kuota dan biaya: TTL yang lebih pendek dan pengesahan ulang yang sering menghabiskan kuota Anda lebih cepat, dan untuk layanan berbayar, berpotensi lebih mahal. Lihat Kuota & batas .

    TTL default 1 hari masuk akal untuk sebagian besar aplikasi. Perhatikan bahwa pustaka App Check menyegarkan token kira-kira setengah dari durasi TTL.

2. Tambahkan perpustakaan App Check ke aplikasi Anda

Tambahkan Firebase ke aplikasi web Anda jika Anda belum melakukannya. Pastikan untuk mengimpor perpustakaan App Check.

3. Inisialisasi Pemeriksaan Aplikasi

Tambahkan kode inisialisasi berikut ke aplikasi Anda, sebelum Anda mengakses layanan Firebase apa pun. Anda harus meneruskan kunci situs reCAPTCHA Anda, yang Anda buat di konsol reCAPTCHA, untuk activate() .

Web version 9

const { initializeApp } = require("firebase/app");
const { initializeAppCheck, ReCaptchaV3Provider } = require("firebase/app-check");

const app = initializeApp({
  // Your firebase configuration object
});

// Pass your reCAPTCHA v3 site key (public key) to activate(). Make sure this
// key is the counterpart to the secret key you set in the Firebase console.
const appCheck = initializeAppCheck(app, {
  provider: new ReCaptchaV3Provider('abcdefghijklmnopqrstuvwxy-1234567890abcd'),

  // Optional argument. If true, the SDK automatically refreshes App Check
  // tokens as needed.
  isTokenAutoRefreshEnabled: true
});

Web version 8

firebase.initializeApp({
  // Your firebase configuration object
});

const appCheck = firebase.appCheck();
// Pass your reCAPTCHA v3 site key (public key) to activate(). Make sure this
// key is the counterpart to the secret key you set in the Firebase console.
appCheck.activate(
  'abcdefghijklmnopqrstuvwxy-1234567890abcd',

  // Optional argument. If true, the SDK automatically refreshes App Check
  // tokens as needed.
  true);

Setelah library App Check diinstal di aplikasi Anda, terapkan.

Aplikasi klien yang diperbarui akan mulai mengirimkan token App Check bersama dengan setiap permintaan yang dibuatnya ke Firebase, tetapi produk Firebase tidak akan mengharuskan token valid sampai Anda mengaktifkan penegakan di bagian App Check di Firebase console. Lihat dua bagian berikutnya untuk detailnya.

4. Pantau metrik permintaan

Setelah aplikasi Anda yang diperbarui ada di tangan pengguna, Anda dapat mengaktifkan penerapan App Check untuk produk Firebase yang Anda gunakan. Namun, sebelum Anda melakukannya, Anda harus memastikan bahwa hal itu tidak akan mengganggu pengguna sah Anda yang sudah ada.

Database Realtime, Cloud Firestore, dan Cloud Storage

Alat penting yang dapat Anda gunakan untuk membuat keputusan ini untuk Realtime Database, Cloud Firestore, dan Cloud Storage adalah layar metrik permintaan App Check.

Untuk melihat metrik permintaan App Check untuk suatu produk, buka bagian App Check di Firebase console. Sebagai contoh:

Tangkapan layar halaman metrik Pemeriksaan Aplikasi

Metrik permintaan untuk setiap produk dipecah menjadi empat kategori:

  • Permintaan terverifikasi adalah permintaan yang memiliki token App Check yang valid. Setelah Anda mengaktifkan penerapan App Check, hanya permintaan dalam kategori ini yang akan berhasil.

  • Permintaan klien yang kedaluwarsa adalah permintaan yang tidak memiliki token App Check. Permintaan ini mungkin berasal dari versi Firebase SDK yang lebih lama sebelum App Check disertakan dalam aplikasi.

  • Permintaan asal tidak diketahui adalah permintaan yang tidak memiliki token App Check, dan sepertinya tidak berasal dari Firebase SDK. Ini mungkin dari permintaan yang dibuat dengan kunci API curian atau permintaan palsu yang dibuat tanpa Firebase SDK.

  • Permintaan yang tidak valid adalah permintaan yang memiliki token App Check yang tidak valid, yang mungkin berasal dari klien tidak autentik yang mencoba meniru aplikasi Anda, atau dari lingkungan yang diemulasi.

Distribusi kategori ini untuk aplikasi Anda harus memberi tahu saat Anda memutuskan untuk mengaktifkan penegakan. Berikut adalah beberapa pedoman:

  • Jika hampir semua permintaan terbaru berasal dari klien terverifikasi, pertimbangkan untuk mengaktifkan penegakan untuk mulai melindungi sumber daya backend Anda.

  • Jika sebagian besar permintaan terbaru berasal dari klien yang kemungkinan sudah usang, untuk menghindari mengganggu pengguna, pertimbangkan untuk menunggu lebih banyak pengguna mengupdate aplikasi Anda sebelum mengaktifkan penerapan. Menerapkan App Check pada aplikasi yang dirilis akan merusak versi aplikasi sebelumnya yang tidak terintegrasi dengan App Check SDK.

  • Jika aplikasi Anda belum diluncurkan, Anda harus segera mengaktifkan penerapan App Check, karena tidak ada klien lama yang digunakan.

Fungsi Cloud

Untuk Cloud Functions, Anda bisa mendapatkan metrik App Check dengan memeriksa log fungsi Anda. Setiap pemanggilan fungsi yang dapat dipanggil memancarkan entri log terstruktur seperti contoh berikut:

{
  "severity": "INFO",    // INFO, WARNING, or ERROR
  "logging.googleapis.com/labels": {"firebase-log-type": "callable-request-verification"},
  "jsonPayload": {
    "message": "Callable header verifications passed.",
    "verifications": {
      // ...
      "app": "MISSING",  // VALID, INVALID, or MISSING
    }
  }
}

Anda dapat menganalisis metrik ini di Google Cloud Console dengan membuat metrik penghitung berbasis log dengan filter metrik berikut:

resource.type="cloud_function"
resource.labels.function_name="YOUR_CLOUD_FUNCTION"
resource.labels.region="us-central1"
labels.firebase-log-type="callable-request-verification"

Beri label metrik menggunakan bidang jsonPayload.verifications.appCheck .

5. Aktifkan penegakan

Untuk mengaktifkan penegakan, ikuti petunjuk untuk setiap produk di bawah. Setelah Anda mengaktifkan penegakan untuk suatu produk, semua permintaan yang belum diverifikasi ke produk tersebut akan ditolak.

Database Realtime, Cloud Firestore, dan Cloud Storage

Untuk mengaktifkan penerapan Realtime Database, Cloud Firestore (iOS dan Android), dan Cloud Storage:

  1. Buka bagian App Check di Firebase console.

  2. Perluas tampilan metrik produk yang penerapannya ingin Anda aktifkan.

  3. Klik Terapkan dan konfirmasikan pilihan Anda.

Perhatikan bahwa diperlukan waktu hingga 15 menit setelah Anda mengaktifkan penerapan agar penerapannya dapat diterapkan.

Fungsi Cloud

Lihat Mengaktifkan penerapan Pemeriksaan Aplikasi untuk Cloud Functions .

Langkah selanjutnya

Jika, setelah Anda mendaftarkan aplikasi untuk App Check, Anda ingin menjalankan aplikasi di lingkungan yang biasanya tidak diklasifikasikan sebagai valid oleh App Check, seperti secara lokal selama pengembangan, atau dari lingkungan continuous integration (CI), Anda dapat membuat build debug aplikasi Anda yang menggunakan penyedia debug App Check alih-alih penyedia pengesahan nyata.

Lihat Menggunakan Pemeriksaan Aplikasi dengan penyedia debug di aplikasi web .