Blokir pengunjung dengan user agent kosong di Nginx

Ternyata ada yang senasib dengan saya untuk urusan pengunjung bukan manusia, jadi identitas browser yang seharusnya ada di user agent isinya kosong. Dan ini aman untuk diblokir karena tidaklah wajar. Jadi kalau sebelumnya saya bahas masalah yang sama tapi solusinya untuk Apache maka kali ini saya akan berikan cara mengatasinya untuk Nginx. Sesuai request yang masuk lewat email. 🙂

Langsung saja ya, silahkan edit konfigurasi Nginx (nginx.conf) atau virtual host website anda. Yang paling penting letakkan kode dibawah dalam blok server{} atau location{}:

if ($http_user_agent = "") { return 403; }

Nanti kalau user agent pengunjungnya tidak ada isinya maka akan muncul halaman error 403 - Forbidden. Fitur blokir ini membutuhkan modul http_rewrite_module tapi setahu saya sudah secara default dicompile pada Nginx.

Ada metode alternatifnya memanfaatkan modul ngx_lua tapi tidak standar diikutkan, jadi saya tambahkan buat referensi saja. Sisipkan kode dibawah dalam blok http{}:

access_by_lua "
  local ua = ngx.req.get_headers()['User-Agent']
  if ua == '' or ua == nil then
    return ngx.exit(ngx.HTTP_FORBIDDEN)
  end";

Fungsinya sama, misal kosong identitas unik visitor websitenya maka akan langsung ditampilkan pesan kesalahan larangan akses.

Semoga bermanfaat. 🙂

Tinggalkan komentar