بسم الله الرحمن الرحيم
Dalam beberapa tahun terakhir, serangan perusakan situs web (defacement
) telah meningkat, dengan banyak kasus melibatkan threat actor
yang memasukkan konten Judi Online ke situs web yang disusupi. Serangan ini sering bertujuan memanfaatkan situs web korban untuk membuat backlink dan meningkatkan visibilitas platform Judi Online di peringkat mesin pencari.
Melihat masalah ini, saya (dengan bantuan ChatGPT) mencoba membuat skrip Cloudflare Worker untuk memfilter dan mengidentifikasi konten situs web yang diduga disusupi oleh konten Judi Online. Skrip ini bertindak sebagai lapisan perlindungan, menganalisis konten yang akan disajikan oleh situs web itu sendiri, serta memblokir halaman yang menyertakan kata kunci terkait Judi Online yang telah ditentukan sebelumnya.
Meskipun solusi ini dapat mengidentifikasi dan memfilter konten mencurigakan, penting untuk dicatat bahwa menentukan akar penyebab dari peretasan memerlukan penyelidikan dan pengujian terhadap aplikasi itu sendiri. Skrip ini berfungsi sebagai tindakan proaktif untuk mencegah situs menampilkan konten yang tidak diinginkan.
I. Cloudflare Worker
Cloudflare Worker adalah platform serverless
yang memungkinkan Anda menjalankan kode JavaScript
langsung di jaringan milik Cloudflare. Dengan Workers, kita dapat membangun aplikasi yang scalable
dan berperforma tinggi yang dijalankan lebih dekat dengan pengguna, mengurangi latensi, dan meningkatkan responsivitas. Worker memungkinkan kita memodifikasi permintaan dan respons, mengelola rute, melakukan integrasi API, dan banyak lagi—semua tanpa perlu mengelola server sendiri.
Dalam kasus ini, Cloudflare Worker berperan sebagai filter konten bagi situs web Anda. Fungsi utamanya adalah:
-
Worker akan mencegat respons dari server aplikasi sebelum dikirimkan ke pengguna, lalu memeriksa konten respons untuk kata kunci terkait Judi Online.
-
Jika ada kata kunci terlarang ditemukan, Worker akan mencegah konten tersebut ditampilkan dengan status
403 Forbidden
. -
Untuk path tertentu yang tidak perlu diperiksa (misalnya,
/about
atau/contact
), Worker akan melewatkan pengecekan konten agar tidak membebani sistem.
II. Worker Route
Worker Route di Cloudflare adalah cara untuk mendefinisikan path atau URL tertentu di mana Cloudflare Worker Anda akan dijalankan. Dengan membuat route, Anda memberi tahu Cloudflare kapan Worker Anda akan dijalankan berdasarkan permintaan HTTP yang masuk. Anda dapat mengonfigurasi route ini untuk mencocokkan path tertentu, subdomain, atau pola URL kustom. Sebagai contoh, Anda bisa membuat route untuk menjalankan Worker hanya untuk permintaan ke /login
atau untuk semua permintaan yang datang dari example.com
.
Dalam konteks ini, Worker Route digunakan untuk menentukan path
atau domain mana dari situs web Anda yang akan ditangani oleh Cloudflare Worker untuk memfilter konten. Route ini menentukan di mana logika penyaringan akan diterapkan.
III. Membuat Worker
Untuk mengimplementasikan proses ini, diperlukan akun Cloudflare serta domain yang sudah diarahkan (pointing) dan terhubung ke Cloudflare. Anda dapat menggunakan Free Plan untuk memanfaatkan Worker dan Worker Route, sehingga tidak perlu melakukan upgrade layanan Cloudflare.
Setelah login ke akun Cloudflare, buka Dashboard dan masuk ke menu Compute (Workers) > Worker and Pages, lalu pilih Create
.
Pilih Workers > Create Worker.
Berikan nama untuk Worker yang akan dibuat, lalu klik Deploy
.
Setelah muncul pesan Success! Your project is deployed to Region: Earth
, pilih Edit Code
untuk mengedit kode Worker Anda.
Salin skrip dari repositori berikut, lalu tempelkan ke editor Worker Anda, kemudian klik Deploy
.
Sesuaikan nilai pada whitelistPaths
dan forbiddenKeywords
sesuai dengan kebutuhan Anda.
1
const whitelistPaths = ['/path1', '/path2', '/path3'];
1
const forbiddenKeywords = ['gacor', 'slot', 'judi'];
Setelah selesai, klik Deploy
. Selamat, Cloudflare Worker telah selesai dibuat!
IV. Setting Worker Route
Setelah Worker selesai dibuat, langkah selanjutnya adalah mengintegrasikannya ke aplikasi Anda menggunakan Worker Route. Dari Dashboard Cloudflare, pilih domain yang sudah terhubung ke Cloudflare, lalu buka menu Worker Routes.
Pada input Route, masukkan domain dan path yang akan diteruskan ke Worker Route. Selanjutnya, pada input Worker, pilih Worker yang telah Anda buat, lalu klik Save
.
Sekarang Worker sudah berhasil dihubungkan ke aplikasi Anda.
V. Pengujian
Untuk menguji proses ini, saya membuat aplikasi sederhana yang menampilkan konten dalam beberapa format, yaitu HTML
, JSON
dan text
.
Aplikasi tersebut dapat diakses dari domain berikut:
https://gcr-site-real.mastomi.id (tanpa route ke CloudFlare Worker)
https://gcr-site-routed.mastomi.id (dengan route ke CloudFlare Worker)
Dapat dilihat bahwa domain tanpa route menampilkan konten dengan keyword gacor
, dan halaman tersebut diblok pada domain yang dilewatkan ke CloudFlare Worker.
Kemudian pada pengujian whitelist, saya menambahkah path /teks.txt
ke whitelistPaths
1
const whitelistPaths = ['/teks.txt'];
Dan halaman pun tetap dapat diakses walau mengandung keyword gacor
.
VI. Penutup
Cloudflare Worker dapat menjadi solusi mencegah aplikasi website kita menampilkan konten Judi Online meskipun telah disusupi. Skrip ini dapat dimodifikasi sesuai kebutuhan, seperti menambahkan fitur alert
untuk memberi notifikasi setiap kali ditemukan keyword yang telah didefinisikan, sehingga mempermudah identifikasi lokasi konten yang telah disusupi. Solusi ini berfungsi sebagai lapisan perlindungan tambahan, namun analisa menyeluruh terhadap root-cause peretasan tetap diperlukan untuk memastikan keamanan situs secara menyeluruh.