Seorang pembangun SaaS mendapati bahawa mengaktifkan Cloudflare Bot Fight Mode untuk setiap domain dalam akaunnya telah melumpuhkan trafik API selama sebulan penuh, menyebabkan pelanggan berbayar tidak dapat menggunakan ciri teras produknya.

Masalah ini timbul apabila pembangun tersebut menyedari metrik penggunaan mendatar secara tiba-tiba. Pendaftaran baharu terus masuk, tetapi sesi aktif berhenti berkembang. Selepas berminggu-minggu menulis semula kod dan menyahpepijat (debugging), satu suis keselamatan rupa-rupanya menjadi punca: Cloudflare Bot Fight Mode melabelkan titik akhir (endpoint) AWS Lambda milik SaaS itu sendiri sebagai bot berniat jahat dan menyekatnya.

Bagaimana satu tetapan merosakkan keseluruhan perkhidmatan

Stack pembangun tersebut bergantung pada panggilan pelayan-ke-pelayan (server-to-server). Satu fungsi Lambda dalaman secara berkala menghantar data kembali ke domain awam SaaS tersebut, satu corak yang biasa dalam seni bina mikro-perkhidmatan moden. Bot Fight Mode mencabar atau menyekat permintaan yang kelihatan seperti pengikis (scraper) automatik, bagi melindungi laman web berasaskan kandungan daripada pengutipan data (data harvesting).

Apabila mod tersebut diaktifkan merentasi semua zon, Cloudflare menganggap permintaan keluar Lambda sebagai klien automatik yang lain. Permintaan tersebut tidak pernah sampai ke aplikasi, dan kerana sekatan berlaku di peringkat edge, alat pemantauan SaaS tersebut tidak menunjukkan sebarang ralat – trafik tersebut hilang begitu sahaja. Penggunaan CPU pembangun pada Cloudflare Workers melonjak, menyebabkan beliau mengesyaki adanya pengikis luaran dan bukannya bahagian backend miliknya sendiri.

Hanya selepas meneliti log Cloudflare, beliau melihat entri sekatan "Bot Fight Mode" yang sepadan dengan julat IP Lambda tersebut. Beliau menutup ciri tersebut untuk zon yang terjejas, dan trafik API kembali pulih, membawa metrik penggunaan kembali ke tahap normal.

Mengapa kesilapan ini penting bagi pengendali SaaS

  • Produk berpusatkan API memerlukan saluran pelayan-ke-pelayan yang terbuka. Bot Fight Mode mengandaikan bahawa trafik utama adalah permintaan pelayar manusia untuk HTML, imej atau aset statik. Platform SaaS yang mendedahkan API, webhook, atau panggilan balik (callback) dalaman boleh disekat atau dihadkan (throttled) tanpa sebarang kod ralat yang jelas sampai ke lapisan aplikasi.
  • Tetapan keselamatan global jarang sekali sesuai untuk setiap beban kerja. Menggunakan satu konfigurasi Cloudflare untuk semua domain melayan setiap laman web seolah-olah ia berkongsi model ancaman yang sama. Laman kandungan, forum dan backend SaaS mempunyai keperluan keselamatan yang sangat berbeza.
  • Kegagalan senyap menjejaskan pendapatan. Sistem amaran pembangun tersebut tidak berbunyi kerana permintaan yang disekat tidak pernah sampai ke aplikasi. Hanya penurunan dalam metrik penglibatan pengguna yang memberi petunjuk tentang masalah tersebut. Tanpa semakan log peringkat edge yang proaktif, isu yang sama boleh berlarutan tanpa disedari.

Apa yang pembangun boleh lakukan untuk mengelakkan nasib yang sama

  1. Audit profil trafik bagi setiap zon. Sebelum mengaktifkan Bot Fight Mode, senaraikan jenis permintaan yang dijangkakan oleh domain anda: pelayar manusia, panggilan API, panggilan balik webhook, atau panggilan perkhidmatan dalaman. Jika mana-mana jenis tersebut penting untuk fungsi teras, anggap zon tersebut sebagai “API-first” dan kekalkan tetapan mitigasi bot pada tahap minimum.
  2. Uji perubahan dalam persekitaran peringkat (staged environment). Cloudflare membolehkan anda menerapkan tetapan pada satu sub-domain atau zon staging. Sahkan bahawa automasi yang sah masih berfungsi sebelum melaksanakan perubahan tersebut secara global.
  3. Pantau log peringkat edge sebagai sebahagian daripada stack kebolehperhatian (observability stack) anda. Alirkan log firewall dan mitigasi bot Cloudflare ke SIEM, Loki, atau mana-mana perkhidmatan agregasi. Kaitkan lonjakan dalam permintaan yang disekat dengan penurunan dalam metrik aplikasi untuk mengesan kegagalan senyap dengan lebih awal.
  4. Pastikan tetapan keselamatan boleh diundur (reversible). Simpan pelan pengunduran (rollback) yang didokumentasikan. Jika peraturan baharu menyebabkan tingkah laku yang tidak dijangka, nyahaktifkannya terlebih dahulu dan sahkan perubahan tersebut sebelum melaburkan masa dalam penyelesaian kod (code workarounds).
  5. Tanya soalan yang betul. Daripada bertanya “bagaimana saya boleh menghentikan pengikis?”, tanya “adakah alat ini menyelesaikan masalah khusus yang saya hadapi?”. Ciri keselamatan yang menyekat pengikis mungkin bukan jawapan yang sesuai untuk SaaS yang memerlukan akses API terbuka.

Perspektif yang lebih luas

Bot Fight Mode tetap berharga untuk laman web yang perlu melindungi kandungan statik daripada crawler yang agresif. Kelemahannya adalah ketidakupayaan untuk membezakan antara pengikis yang berniat jahat dengan klien automatik sah yang mengikut corak HTTP yang sama.

Kesimpulan

Apabila anda menguruskan pelbagai domain di bawah satu akaun Cloudflare, anggap setiap satu sebagai zon keselamatan yang berbeza. Aktifkan Bot Fight Mode hanya di mana trafik dipacu sepenuhnya oleh manusia; untuk beban kerja SaaS yang berat dengan API, kekalkan tetapan tersebut dalam keadaan tutup atau selaraskan dengan peraturan firewall tersuai. Satu klik boleh membisukan trafik yang sah seefektif ia menghentikan pengikis.