Rate limit
Preset rate limit per formulir dengan angka pastinya, cara pengisiannya kembali, dan seperti apa respons 429.
Rate limit mencegah satu pengunjung, atau satu skrip, membanjiri formulir. Setiap formulir punya preset, dan setiap batas dihitung secara presisi, sebelum body dibaca. Kiriman yang ditolak tidak memakai jatah apa pun.
Preset
| Preset | Per pengunjung dan formulir | Cocok untuk |
|---|---|---|
| Standard (default) | 5 per menit, maksimal 3 dalam 10 detik | Sebagian besar formulir |
| Relaxed | 20 per menit | Formulir di balik login, tool internal, acara dengan Wi-Fi bersama |
| Strict | 2 setiap 10 menit | Formulir kontak dan penjualan, di mana pengulangan biasanya klik ganda atau bot |
| Custom | 1 sampai 1.000 setiap 10 detik, menit, 10 menit, jam, atau hari | Satu entri per orang, kios, dan kasus khusus lainnya |
Perbandingan preset
Standard 5 per menit, 3 dalam 10 detik14 dari 120 diterima
Relaxed 20 per menit59 dari 120 diterima
Strict 2 setiap 10 menit2 dari 120 diterima
Cara batas terisi kembali
Batas berupa jatah yang mengalir, bukan jendela waktu tetap. Pengunjung yang belum aktif mulai dengan jatah penuh dan bisa langsung memakainya. Setelah itu, satu kiriman lagi diizinkan setiap durasi jendela dibagi batas: setiap 12 detik untuk Standard, setiap 3 detik untuk Relaxed, dan setiap 5 menit untuk Strict. Setelah satu jendela penuh tanpa aktivitas, jatahnya penuh kembali.
Standard juga punya aturan burst 3 kiriman per 10 detik, jadi burst pertamanya 3, bukan 5. Relaxed, Strict, dan Custom tidak punya aturan burst terpisah.
Batas yang selalu berlaku
| Aturan | Batas | Dihitung per |
|---|---|---|
| Proteksi flood, sebelum formulir dicari | 600 per menit | IP, di semua formulir |
| Lintas formulir | 30 per menit, atau laju per menit Custom jika lebih tinggi | IP, di semua formulir |
| Seluruh formulir | 300 per menit, atau batas Custom 1 sampai 10.000 | Formulir, untuk semua pengunjung |
GET /f/<formId>/schema | 60 per menit | IP dan formulir |
| Frame pemeriksaan Ikiform | 60 per menit | IP dan formulir |
| REST API | 100 per menit | Kunci API |
Laju Custom yang lebih cepat dari proteksi flood ditolak saat Anda menyimpan; misalnya, jendela 10 detik mengizinkan maksimal 100. Memuat skema formulir atau pemeriksaan manusia tidak pernah memakai jatah kiriman.
Custom
- Submissions per visitor: bilangan bulat dari 1 sampai 1.000, dengan jendela 10 detik, satu menit, 10 menit, satu jam, atau satu hari.
- Form-wide cap per minute: opsional, dari 1 sampai 10.000. Menggantikan default 300 per menit untuk seluruh formulir.
- Jendela satu jam atau satu hari cocok untuk formulir satu-entri-per-orang seperti giveaway atau RSVP. Ingat bahwa banyak orang bisa berbagi satu IP, misalnya di kantor atau acara.
Saat batas tercapai
Kiriman ditolak dengan 429 rate_limited dan header Retry-After berisi jumlah detik bulat sampai kiriman berikutnya diizinkan. Kiriman formulir dari browser melihat halaman hosted "Slow down". Kode fetch bisa membaca Retry-After, karena Ikiform mengeksposnya lewat CORS.
HTTP/1.1 429 Too Many Requests
Retry-After: 12
X-Request-Id: req_01k7v2c9t3e8m5q4x6z0a1b2c3
Content-Type: application/json; charset=utf-8
{"ok":false,"error":{"code":"rate_limited","message":"Too many requests. Please slow down."},"request_id":"req_01k7v2c9t3e8m5q4x6z0a1b2c3"}- Tunggu selama
Retry-Afterdetik sebelum mengirim lagi. - Jika pengunjung yang jujur mencapai batas, ubah formulir ke Relaxed atau Custom.
- Jika server Anda mengirim atas nama pengunjung, setiap kiriman berbagi IP server Anda. Lihat Dari server.