Filter User Agent: Apa Itu UA dan Mengapa Tidak Cukup untuk Memblokir Bot

Filter user agent adalah cara tertua untuk menyaring bot: server membaca string yang dipakai browser untuk memperkenalkan diri, lalu memutuskan berdasarkan string itu. Kita bahas apa isi string tersebut, kapan bisa dipercaya, dan mengapa UA saja tidak cukup untuk melindungi traffic iklan.

Bot dan Fraud9 menit baca
Filter User Agent: Apa Itu UA dan Mengapa Tidak Cukup untuk Memblokir Bot
Daftar isi
  1. Apa itu user agent dan apa isinya
  2. Cara kerja filter user agent
  3. User agent bot: siapa yang jujur memperkenalkan diri
  4. Memalsukan user agent: mengapa filter yang hanya mengandalkan UA lemah
  5. Kapan filter user agent tetap berguna
  6. Kombinasi dengan tanda lain: UA sebagai satu suara di antara banyak
  7. Bagaimana ini bekerja di ArtisanClo
  8. Kesalahan umum dalam filter user agent
  9. Kesimpulan

User agent (UA) adalah string yang dipakai browser atau program lain untuk memperkenalkan diri ke server di header setiap permintaan: nama dan versi browser, engine, sistem operasi, kadang model perangkat. Filter user agent berarti server membaca string ini dan berdasarkan isinya memutuskan siapa yang boleh masuk, siapa yang ditampilkan halaman lain, dan siapa yang disaring sebagai bot.

Metode ini sederhana dan murah, sehingga masih sering ditemukan di script buatan sendiri dan plugin "antibot". Tetapi string itu ditulis oleh klien sendiri, dan memalsukannya lebih mudah daripada tanda kunjungan lainnya. Di bawah ini: apa sebenarnya isi UA, kapan string ini bisa dipercaya, kapan tidak, dan bagaimana memakainya bersama sinyal lain.

Apa itu user agent dan apa isinya

String khas Chrome mobile di Android terlihat seperti ini:

Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36

Lebih mudah dibaca per bagian:

Bagian Artinya
Mozilla/5.0 Prefiks kompatibilitas historis, ada di hampir semua browser dan tidak memberi informasi apa pun
(Linux; Android 10; K) Platform dan OS; model perangkat di browser modern sering diganti placeholder
AppleWebKit/537.36 (KHTML, like Gecko) Engine rendering dan satu lagi warisan kompatibilitas
Chrome/130.0.0.0 Browser dan versi mayor; angka minor sudah lama dinolkan
Mobile Safari/537.36 Tanda tampilan mobile

Dari string ini server biasanya mengambil empat hal: jenis perangkat (ponsel, tablet, komputer, TV), sistem operasi, browser, dan tanda bahwa yang datang sama sekali bukan browser, melainkan program atau robot.

Perhatikan: string ini hampir tidak berisi informasi unik. Jutaan ponsel mengirim UA yang sama — justru karena itulah browser "membekukannya", agar orang lebih sulit dilacak lewat UA.

Client Hints: ke mana detailnya pindah

Browser berbasis Chromium perlahan memangkas string klasik dan mengirim detailnya lewat Client Hints — kumpulan header Sec-CH-UA, Sec-CH-UA-Mobile, Sec-CH-UA-Platform, dan lainnya. Sebagian dikirim di setiap permintaan, sebagian hanya jika server secara eksplisit memintanya. Untuk penyaringan ini berguna dalam dua hal: hints lebih sulit dikarang secara meyakinkan dari nol, dan bisa dicocokkan dengan string utama. Browser yang di UA menyebut dirinya Chrome di Windows tetapi di hints melaporkan platform lain, berperilaku janggal.

Ada juga batasannya: Safari dan Firefox mendukung hints secara berbeda atau tidak sama sekali, sehingga ketiadaan Client Hints sendiri tidak berarti apa-apa.

Cara kerja filter user agent

Dalam bentuk paling sederhana, ini adalah daftar substring: jika UA mengandung salah satu kata terlarang, pengunjung dikirim ke halaman pengganti. Sedikit lebih rumit adalah parser yang memecah string menjadi browser, OS, dan perangkat, lalu aturan di atas hasilnya: "hanya ponsel", "jangan izinkan Smart TV", "hanya Android".

Di sini penting memisahkan dua tugas yang berbeda:

  1. Targeting — memilih audiens target: apakah offer ini butuh desktop, apakah iOS cocok. String UA bekerja baik di sini, karena orang biasa tidak memalsukannya dan kesalahannya murah.
  2. Perlindungan dari bot — menyaring otomatisasi. Di sini UA hampir tidak berguna sebagai tanda tunggal: pembuat bot pertama-tama memasang string browser asli.

Lebih lanjut tentang filter audiens berdasarkan perangkat, OS, dan browser ada di artikel tentang filter berdasarkan geo dan perangkat. Selanjutnya kita bahas tugas kedua.

User agent bot: siapa yang jujur memperkenalkan diri

Sebagian traffic otomatis memang memperkenalkan diri apa adanya. Ada dua kelas yang berbeda.

Script dan utilitas kasar. Library untuk permintaan HTTP, downloader command line, dan parser secara default mengirim UA sendiri — dengan nama library dan versinya — atau tidak mengirim UA sama sekali. String UA kosong atau nama library sebagai pengganti browser adalah tanda yang andal: manusia dari iklan tidak datang seperti itu. Kunjungan seperti ini langsung disaring dan hampir tanpa risiko.

Crawler mesin pencari dan robot "sopan". Mesin pencari, layanan pratinjau tautan, dan monitoring uptime biasanya jujur mencantumkan nama dan tautan ke deskripsinya. Bagi situs biasa mereka tamu yang berguna dan tidak diblokir. Tetapi di sini pun ada catatan: string robot mesin pencari terkenal sering disalin parser agar dibiarkan masuk ke tempat yang terbuka bagi mesin pencari. Karena itu mesin pencari sendiri menyarankan memverifikasi robot bukan lewat UA, melainkan lewat reverse DNS ke alamat IP: crawler asli datang dari jaringan perusahaannya.

Kesimpulannya: filter UA bagus untuk menangkap mereka yang tidak berusaha bersembunyi. Ini porsi permintaan sampah yang cukup besar, dan menyaringnya murah. Tetapi ini bukan bagian traffic bot yang menghabiskan budget iklan.

Memalsukan user agent: mengapa filter yang hanya mengandalkan UA lemah

Program apa pun yang sedikit saja menyamar mengirim string Chrome atau Safari terbaru. Ini dilakukan dengan satu baris kode, dan di browser cukup dengan satu sakelar di developer tools. Dari situ muncul tiga masalah.

Pemalsuan tidak terlihat dari string itu sendiri. UA yang benar dari browser asli dan UA yang sama dalam permintaan script terlihat identik byte demi byte. String tidak bisa diperiksa terhadap dirinya sendiri — hanya bisa dicocokkan dengan tanda lain.

Daftar cepat usang. Blacklist substring menuntut pembaruan terus-menerus: alat baru bermunculan, alat lama berganti nama, dan browser asli mengubah format string. Daftar yang tidak diperbarui setengah tahun kebanyakan menangkap hal yang sudah lama tidak datang.

False positive pada manusia. Browser bawaan aplikasi, WebView, ponsel lama, dan browser versi korporat mengirim string yang tidak biasa. Aturan "semua yang tidak mirip Chrome standar itu mencurigakan" justru memotong traffic mobile dari media sosial — traffic yang Anda bayar. Kekhasan browser bawaan aplikasi dibahas rinci di materi tentang traffic in-app dan fraud.

Tips. Jika aturan berbasis UA terpicu pada porsi traffic berbayar yang cukup besar, kemungkinan besar aturan itu memotong manusia, bukan bot. Bot yang layak dilawan datang dengan string yang sempurna.

Kapan filter user agent tetap berguna

Terlepas dari semua itu, UA adalah tanda yang wajar dan diperlukan, asalkan Anda tahu tempatnya.

  • Menyaring otomatisasi kasar. UA kosong, nama library, utilitas command line, atau framework scraping — langsung "tidak". Lapisan murah yang mengurangi beban pemeriksaan lainnya.
  • Mendeteksi jenis perangkat untuk targeting dan routing. Ponsel atau komputer, Android atau iOS — untuk membagi traffic ke offer, string UA biasanya sudah cukup.
  • Mengenali browser bawaan aplikasi. Dari UA terlihat bahwa kunjungan datang dari browser di dalam aplikasi. Ini penting bukan untuk memblokir, justru sebaliknya — agar kunjungan seperti itu tidak dihukum karena tanda yang di WebView sering keliru.
  • Pencocokan dengan tanda lain. UA bilang "iPhone", tetapi layar, set font, dan perilaku script bilang lain. Ketidakcocokan itu sendiri adalah sinyal.
  • Analitik. Potongan per browser dan OS di laporan menunjukkan di mana konversi turun dan dari mana lonjakan mencurigakan datang.

Kombinasi dengan tanda lain: UA sebagai satu suara di antara banyak

Perlindungan yang baik tidak bertanya "UA apa yang dimiliki kunjungan ini", tetapi "apakah UA cocok dengan semua hal lainnya". Berikut tanda-tanda yang biasa dicocokkan dengannya:

Tanda Dengan apa UA dicocokkan
Alamat IP dan jaringan Browser mobile dari jaringan hosting patut dicermati; lebih lanjut di artikel tentang VPN, proxy, dan IP data center
Header permintaan Set dan urutan header browser asli berbeda dari set header library, meskipun string UA sama
Client Hints Platform dan merek browser di hints harus sesuai dengan string
Eksekusi JavaScript Browser yang mengaku Chrome modern tetapi tidak menjalankan script tidak berperilaku seperti browser
Properti browser di script Platform, layar, tanda otomatisasi; rinciannya di materi tentang browser headless dan fingerprint browser
Perilaku Waktu di halaman, gerakan mouse, dan sentuhan

Setiap tanda secara terpisah bisa keliru. Bersama-sama mereka memberi penilaian yang jauh lebih jarang salah. Begitulah cara kerja setiap filter trafik adaptif modern: satu tanda hanya menambah sedikit kecurigaan, dan kesimpulan yang yakin lahir dari kecocokan beberapa tanda. Skema umum lapisan perlindungan kami bahas di artikel tentang cara memfilter bot.

Bagaimana ini bekerja di ArtisanClo

Di ArtisanClo, string user agent adalah salah satu sinyal, bukan aturan terpisah "berdasarkan daftar". Keputusan atas kunjungan tersusun dari beberapa langkah, dan UA berperan di masing-masing dengan caranya sendiri.

Jaringan dan permintaan. Langkah pertama melihat alamat, jaringan, ISP, header, label klik, dan aturan flow — bahkan sebelum browser diperiksa. Di sini disaring program yang bukan browser dan robot platform untuk pratinjau tautan: kunjungan seperti ini selalu mendapat White Page, apa pun pengaturannya, dan di log terlihat alasan "Program, bukan browser" atau "Crawler mesin pencari atau platform". Langkah ini paling sedikit menyentuh manusia.

Audiens. Di pengaturan filter flow ada daftar "Perangkat", "Sistem operasi", dan "Browser" dengan opsi izinkan dan blokir. Di antara perangkat ada kategori terpisah "Bot / crawler" dan "Tidak diketahui". Ini targeting: pengunjung yang tidak lolos daftar melihat White Page dengan alasan yang jelas.

Pemeriksaan browser. Siapa pun yang mengirim string browser asli menjalani pemeriksaan oleh script, dan jawabannyalah yang menunjukkan apakah kunjungan mirip otomatisasi. Pemblokiran browser headless langsung menyaring kunjungan dengan jejak otomatisasi yang jelas, sementara tanda yang kurang jelas masuk ke penilaian kepercayaan bersama jaringan, VPN, keberadaan ISP, dan situs asal.

Browser bawaan aplikasi. Browser bawaan Facebook, Instagram, TikTok, dan WebView di aplikasi dikenali secara terpisah. Tanda otomatisasi pada mereka tidak langsung menyaring kunjungan, melainkan diperhitungkan dalam penilaian kepercayaan bersama jaringan, waktu, dan referrer, karena di browser seperti itu tanda tersebut sering keliru.

Transparansi. Setiap klik di log punya alasan keputusan dari puluhan kemungkinan, dan tautan "Laporan kunjungan" menampilkan semua sinyal dan kesimpulan untuk satu kunjungan. Jika Anda menduga filter salah, mulailah dari artikel mengapa klik masuk ke White Page. Semua kemampuan penyaringan dikumpulkan di halaman fitur.

Kesalahan umum dalam filter user agent

  1. Membangun perlindungan di atas blacklist substring. Daftar itu hanya menangkap yang tidak bersembunyi dan menuntut pembaruan tanpa akhir.
  2. Memblokir semua yang "tidak standar". Yang terkena adalah browser bawaan media sosial dan perangkat lama — traffic berbayar yang hidup.
  3. Percaya pada string yang terlihat benar. UA sempurna dari browser modern justru itulah yang dikirim bot yang dibuat dengan baik.
  4. Mencampur targeting dengan perlindungan. Pilihan "hanya Android" adalah keputusan tentang audiens offer, bukan cara menyingkirkan bot.
  5. Tidak melihat alasan penyaringan. Jika tidak terlihat aturan mana yang terpicu, Anda tidak bisa tahu apakah filter memotong bot atau manusia. Tanda-tanda traffic bot yang terlihat di laporan dikumpulkan di artikel tentang ciri-ciri traffic bot.

Kesimpulan

String user agent adalah apa yang dikatakan klien tentang dirinya sendiri. String ini bisa dipercaya saat taruhannya rendah: untuk mendeteksi perangkat, membagi traffic, dan analitik. String ini tidak bisa dipercaya sebagai bukti bahwa yang datang adalah manusia. Filter user agent bagus untuk membuang script kasar dan permintaan kosong, tetapi perlindungan sesungguhnya dimulai ketika UA dicocokkan dengan jaringan, header, Client Hints, eksekusi script, dan perilaku. Dengan begitu string palsu tidak membantu bot, dan string yang tidak biasa tidak merugikan pengunjung manusia.

Pertanyaan yang sering diajukan

01

Apa itu user agent dalam bahasa sederhana?

Ini kartu nama berbentuk teks singkat yang dikirim browser atau program ke server bersama setiap permintaan. Isinya menyebutkan program apa itu, versi berapa, dan berjalan di sistem apa. Server memakainya untuk memilih tampilan, menghitung statistik, dan kadang memutuskan apakah pengunjung boleh masuk.

02

Apakah user agent bisa dipalsukan?

Bisa, dan sangat mudah. Di library HTTP mana pun ini cukup satu baris pengaturan, di browser cukup satu opsi di developer tools atau sebuah ekstensi. Karena itu UA yang sama dengan Chrome biasa tidak membuktikan apa pun, sedangkan ketidakcocokan jelas antara UA dan tanda kunjungan lainnya sudah merupakan sinyal yang kuat.

03

Bagaimana cara melihat user agent saya sendiri?

Cara paling mudah adalah membuka console developer di browser dan menjalankan navigator.userAgent, string lengkapnya akan tampil. String ini juga terlihat di tab Network pada header permintaan apa pun. Banyak situs pengecekan juga menampilkannya, tetapi alat bawaan browser sudah cukup.

04

Mengapa robot mesin pencari tidak diblokir berdasarkan user agent?

Bagi situs biasa, robot mesin pencari berguna: tanpa mereka halaman tidak masuk hasil pencarian. Selain itu UA mereka sering dipalsukan, sehingga mesin pencari sendiri menyarankan memverifikasi robot lewat reverse DNS ke alamat IP-nya, bukan lewat string. Memblokir atau mengizinkan mereka adalah keputusan pemilik situs, bukan tugas filter iklan.

05

Apakah Client Hints akan menggantikan string user agent?

Sebagian. Browser berbasis Chromium sudah memangkas string klasik dan memindahkan detailnya ke header Sec-CH-UA, sebagian di antaranya baru dikirim jika server memintanya. Browser lain belum mendukungnya sepenuhnya, jadi dalam praktik situs membaca kedua sumber dan mencocokkannya satu sama lain.

Baca juga

Lihat trafik Anda yang sebenarnya

Hubungkan ArtisanClo ke situs Anda, lihat siapa yang benar-benar datang dari iklan, dan mengapa setiap klik mendapat keputusannya.