Caputchin
Verifikasi terhosting

Verifikasi tanpa backend

Sebuah token Caputchin tak membuktikan apa pun sampai sesuatu memastikannya. Biasanya sesuatu itu adalah backend-mu sendiri, yang memanggil /siteverify dan memutuskan apakah memercayai permintaan. Verifikasi terhosting memindahkan langkah itu ke Caputchin: formulirmu memposting ke sebuah penerus Caputchin, Caputchin memverifikasi token, membuang apa pun yang gagal, dan meneruskan hanya kiriman terverifikasi ke tujuan yang kamu pilih.

Ia adalah keputusan kepercayaan yang sama dengan pemeriksaan backend, dijalankan di sisi Caputchin alih-alih sisimu. Intinya tak ada panggilan /siteverify untuk ditulis dan tak ada secret untuk dijaga di server, karena tak ada server.

Verifikasi terhosting adalah fitur berbayar, tersedia di Alpha ke atas.

Untuk siapa ia

Verifikasi terhosting ada untuk kasus di mana menjalankan backend hanya untuk memeriksa token lebih dari yang dibutuhkan proyek.

Kamu adalahMengapa ia cocok
Sebuah situs statis (Webflow, Framer, HTML murni di CDN)Tak ada server untuk menerima formulir atau memanggil /siteverify.
Sebuah pembangun no-code (Wix, Squarespace, Carrd)Kamu tak bisa menambahkan kode verifikasi sisi-server.
Pengembang solo atau tim kecilSebuah formulir kontak atau pendaftaran tak sepadan dengan mendirikan dan mengoperasikan backend.
Sudah menjalankan backend, tapi tidak untuk formulir iniKamu bisa mengarahkan satu formulir ke penerus dan membiarkan sisa stack-mu sendiri.

Jika kamu memang menjalankan backend dan ingin memverifikasi di sana, pakai verifikasi di backend-mu sebagai gantinya. Keduanya alternatif, bukan lapisan.

Bagaimana ia bekerja

Penerus menahan kiriman di memori hanya untuk sesaat yang dibutuhkan untuk mengirimnya. Tak ada penyimpanan antara posting dan pengiriman, dan field caputchin-token disingkirkan sebelum payload mencapai tujuanmu.

Tujuan

Kamu mengonfigurasi satu atau keduanya per kunci situs. Mengaktifkan keduanya adalah pola umum: kirim ke webhook untuk pemrosesan dan email salinan ke dirimu sendiri.

TujuanApa yang kamu terima
WebhookSebuah POST JSON yang membawa field formulirmu plus metadata verifikasi Caputchin.
EmailSebuah email polos dengan field formulir dan footer yang mencatat Caputchin memverifikasi kiriman.

Pengiriman tak ditandatangani. Kerahasiaan URL penerus itulah yang mengautentikasi panggilan webhook, jadi jaga URL keluar dari repositori publik dan kode sisi-klien. Tutorial penyiapan menunjukkan payload webhook persisnya.

Apa yang dijaga tetap privat

Verifikasi terhosting mengikuti sikap tanpa-data-pengunjung yang sama dengan sisa Caputchin:

  • Kiriman tak pernah disimpan. Mereka hidup di memori proses selama durasi penerusan, lalu mereka lenyap. Bangun catatanmu sendiri di sisi webhook jika kamu mau satu.
  • Tak ada data tentang pengirim yang dikumpulkan. Tanpa IP, tanpa User-Agent, tanpa sidik jari, tanpa pelacakan.
  • Telemetri hanya agregat. Caputchin menghitung keberhasilan dan kegagalan pengiriman agar kamu bisa melihat apakah tujuanmu sehat, tak pernah isi kiriman mana pun. Lihat statistik.

Bagaimana URL yang dipasok-pelanggan dijaga aman

Sebuah URL yang akan dipanggil server Caputchin adalah risiko Server-Side Request Forgery klasik. Penerus menolak URL webhook mana pun yang host-nya adalah alamat privat, loopback, link-local, atau cloud-metadata, baik saat kamu menyimpannya maupun lagi tepat sebelum tiap pengiriman. Kategori yang diblokir termasuk:

KategoriContoh
Loopback dan tak ditentukan127.0.0.1, 0.0.0.0, ::1
Privat (RFC 1918)10.x.x.x, 172.16.x.x hingga 172.31.x.x, 192.168.x.x
Link-local dan cloud metadata169.254.x.x, khususnya endpoint metadata 169.254.169.254
Carrier-grade NAT100.64.x.x hingga 100.127.x.x
Multicast dan tercadang224.x.x.x dan ke atas
Hostname internallocalhost dan host mana pun yang berakhir dengan .local, .localhost, atau .internal
IPv6 privatalamat link-local (fe80::/10) dan unique-local (fc00::/7)

Pengkodean yang mencoba menyamarkan alamat yang diblokir juga tertangkap: host integer-desimal seperti http://2130706433/ atau host heksa seperti http://0x7f000001/ (keduanya berarti 127.0.0.1) ditolak. Hanya URL http dan https yang diterima; skema lain mana pun ditolak. Penerus juga menolak mengikuti pengalihan, jadi sebuah endpoint webhook tak bisa memantulkan panggilan ke target internal. URL yang diblokir muncul sebagai galat umum ketimbang yang spesifik, jadi ia tak bisa dipakai untuk menyelidik jaringan. Webhook-mu karenanya harus hidup di URL https publik.

Apa yang sengaja ditinggalkan

  • Tanpa kotak masuk kiriman. Tak ada riwayat tersimpan kiriman untuk dijelajahi di dasbor.
  • Tanpa adaptor Discord, Slack, Telegram, atau SMS milik sendiri. Hanya webhook dan email. Sebuah webhook bisa menyebar ke mana pun itu di sisimu.
  • Tanpa unggahan berkas. Penerus menerima field teks; sebuah kiriman yang membawa berkas ditolak.
  • Tanpa transformasi payload. Apa yang diposting formulir adalah apa yang diterima tujuanmu, plus metadata verifikasi.

Lihat juga

Di halaman ini