Mar 28, 2025
Arlan Butar Butar
107
US - NGROK, Bayangkan Anda merilis API baru yang menyediakan data cuaca untuk lokasi di seluruh dunia. Kecuali, karena beberapa alasan, satelit cuaca Anda memiliki dua titik buta di dunia. Satelit tersebut tidak dapat menampilkan informasi cuaca yang akurat untuk negara kepulauan Samoa Amerika dan Islandia.
Saat Anda berupaya memperbaiki masalah tersebut, Anda tidak ingin membuat pengguna di kedua negara frustrasi dengan memberikan informasi yang tidak akurat. Sebaliknya, Anda menginginkan pengalaman pengguna yang bersih dengan pesan kesalahan khusus. Anda dapat melakukannya dengan pemblokiran geografis menggunakan gateway API Anda.
Pemblokiran geografis adalah strategi yang membatasi akses ke API Anda berdasarkan lokasi geografis permintaan atau Titik Kehadiran (PoP) regional yang menerima permintaan tersebut. Lokasi diambil dari registri geolokasi, yang menyimpan informasi geolokasi dan memetakannya ke alamat IP di wilayah tersebut. Gateway API seperti ngrok dapat menggunakan informasi ini untuk memfilter, merutekan, dan memblokir permintaan.
Pada intinya, pemblokiran geografis adalah tentang kontrol. Dengan API yang sering kali terekspos secara global, kemampuan untuk memblokir lalu lintas dari wilayah tertentu dapat meningkatkan keamanan, mengurangi risiko, dan memastikan kepatuhan. Dalam contoh kami, kami ingin membatasi permintaan yang mencari data cuaca di wilayah yang tidak didukung oleh API kami. Namun, Anda mungkin memiliki alasan lain untuk memblokir permintaan secara geografis.
Misalnya, jika Anda beroperasi di wilayah dengan undang-undang privasi data yang ketat, Anda mungkin ingin membatasi akses dari negara-negara dengan kepatuhan yang tidak pasti. Demikian pula, memblokir lalu lintas dari wilayah dengan aktivitas berbahaya yang tinggi—seperti botnet atau serangan DDoS berulang—dapat membantu mengurangi permukaan serangan Anda.
Pemblokiran geografis juga dapat meningkatkan kinerja. Membatasi lalu lintas ke wilayah tempat Anda mengetahui lokasi pengguna dapat menghindari beban yang tidak perlu pada server dan mengurangi latensi bagi pengguna yang sah.
ngrok memungkinkan pemblokiran geografis melalui ekspresi Common Expression Language (CEL) di mesin Traffic Policy. Ekspresi tersebut juga mendukung berbagai variabel dan makro. Variabel dalam conn.geo
namespace memungkinkan ngrok untuk memblokir permintaan berdasarkan lokasi permintaan. conn.geo.country_code
Variabel tersebut memungkinkan Anda membuat ekspresi menggunakan kode negara dua huruf. Dalam kasus API cuaca yang disebutkan sebelumnya, conn.geo.country_code
memungkinkan Anda mengidentifikasi semua permintaan dari Amerika Samoa (AS) dan Islandia (IS) menggunakan kode negara mereka. Untuk memblokir permintaan tersebut dan mengembalikan custom-response
, aturan Traffic Policy akan terlihat seperti ini:
Aturan tersebut memblokir semua permintaan yang berasal dari negara yang tercantum dan mengembalikan custom-response
with status_code: 403
.
Jika kebutuhan pemblokiran geografis Anda memerlukan ketelitian yang lebih tinggi, conn.geo
namespace juga memiliki variabel untuk kota, garis bujur, garis lintang, wilayah server, dan bahkan radius–kilometer di sekitar garis lintang dan garis bujur tempat pemblokiran conn.client_ip
kemungkinan berasal.
Anda bahkan dapat menggabungkan ekspresi. Jika Anda hanya ingin memblokir titik akhir tertentu, ekspresi tersebut akan terlihat seperti ini:
Pemblokiran geografis tidak hanya berlaku untuk koneksi HTTP. Anda juga dapat memfilter permintaan pada lapisan TCP . Dengan menggunakan Kebijakan Lalu Lintas, variabel dari conn.geo
namespace masih tersedia untuk membangun ekspresi. Satu-satunya perbedaan adalah ekspresi akan berada di bawah on_tcp_connect
fase, bukan on_http_connect
fase.
Meskipun ada strategi lain untuk pemblokiran geografis, seperti pemblokiran geografis berbasis DNS dan pemblokiran pada lapisan aplikasi, pemblokiran dengan lokasi IP klien merupakan cara yang paling umum untuk melakukan pemblokiran geografis.
Pemblokiran geografis dapat menjadi alat yang ampuh, tetapi ada beberapa faktor yang perlu diingat:
Untuk mulai bekerja dengan geolokasi permintaan pada API Anda, daftar untuk akun ngrok dan periksa dokumentasi untuk modul Kebijakan Lalu Lintas ngrok untuk melihat cara merumuskan ekspresi dan tindakan. Kemudian, pelajari bagian Variabel Geo Koneksi dari dokumen Variabel HTTP untuk menemukan berbagai cara mengambil geoinformasi untuk permintaan.