Keamanan Website - OpenCourseWare MSP

Logo PT Mitra Solusindo Pratama, PT MSP Bandung

Logo PT Mitra Solusindo Pratama, PT MSP Bandung PT Mitra Solusindo Pratama, PT MSP
Baca »

Keamanan Website - OpenCourseWare MSP

Course OpenCourseWare MSP ini membahas keamanan website sebagai pertahanan berlapis, mulai dari inventaris aset, hardening web server, firewall hosting, Cloudflare versi gratis, keamanan WordPress, hingga secure development pada Laravel dan CodeIgniter. Anda akan belajar mencegah, mendeteksi, dan merespons deface atau judol, pencurian data dan database, SEO hacking, pemilik Search Console yang tidak dikenal, brute force, serta penyalahgunaan fitur pencarian yang menghasilkan URL spam terindeks. Setiap kontrol dihubungkan dengan bukti konfigurasi, pengujian, pemilik kontrol, dan rencana pemulihan.
Pelajari keamanan website berlapis: hardening web server, firewall hosting dan Cloudflare, WordPress, secure coding, monitoring, serta respons insiden.
Pelajari keamanan website berlapis: hardening web server, firewall hosting dan Cloudflare, WordPress, secure coding, monitoring, serta respons insiden.

OpenCourseWare MSP · OCW-MSP-SEO-014

Website yang tampak normal belum tentu aman. Serangan dapat mengubah halaman menjadi judol, mencuri database, membuat konten tersembunyi untuk Google, mengambil alih akun, atau membebani server melalui brute force. Course ini membantu pemilik website, administrator hosting, pengelola WordPress, dan developer membangun kontrol yang saling melengkapi serta dapat diuji.

Keamanan Website

Keamanan website bukan satu tombol, satu plugin, satu firewall, atau satu sertifikat SSL. Ia merupakan rangkaian keputusan sejak DNS, akun cloud, jaringan, sistem operasi, web server, runtime, database, CMS atau framework, kode aplikasi, proses update, hingga monitoring dan pemulihan.

Materi menggunakan pendekatan defense in depth: mencegah serangan sedekat mungkin dengan sumbernya, membatasi dampak ketika satu lapisan gagal, mendeteksi perubahan lebih cepat, dan menyiapkan pemulihan dari sumber yang benar-benar bersih. Contoh konfigurasi diperlakukan sebagai pola yang harus disesuaikan dengan arsitektur dan diuji di staging.

PenyelenggaraHilfan Soeltansyah (PT. Mitra Solusindo Pratama)
FormatOpenCourseWare, belajar mandiri
TingkatPemula–Menengah
BahasaBahasa Indonesia
Ritme belajar4 minggu · 12 jam
SertifikatTidak disediakan

Course Overview

Tujuan keamanan bukan menjanjikan website “tidak mungkin diretas”. Tujuannya adalah menurunkan kemungkinan insiden, memperkecil area serangan, membatasi blast radius, meningkatkan peluang deteksi, dan mempercepat pemulihan. Website yang aman menjaga tiga hal: kerahasiaan data, keutuhan konten dan transaksi, serta ketersediaan layanan.

Serangan juga tidak selalu terlihat sebagai halaman yang rusak. Penyerang dapat menyisipkan judul dan deskripsi spam hanya untuk crawler, membuat ribuan URL melalui fitur pencarian, menambah verified owner di Search Console, menaruh akses persisten, atau mengekspor database sementara beranda tetap terlihat normal.

Prinsip utama: setiap kontrol harus menjawab empat pertanyaan: risiko apa yang dikurangi, di lapisan mana ia bekerja, bagaimana keberhasilannya diuji, dan siapa yang bertanggung jawab ketika kontrol gagal.

Lapisan pertahanan website

Tabel dapat digeser ke kanan atau kiri pada perangkat seluler.

LapisanAset atau permukaanKontrol utamaBukti yang diperiksa
Akun dan DNSRegistrar, DNS, hosting, CDN, email admin, Search Console.MFA, least privilege, recovery aman, audit owner, API token terbatas.Daftar akun, owner, token, notifikasi, dan log perubahan.
Edge atau CDNTraffic publik sebelum mencapai hosting.Proxy, WAF, DDoS protection, bot control, rate limiting, TLS.Security Events, rule hit, false positive, dan origin tidak dapat dibypass.
Jaringan dan hostPort, SSH, control panel, database, service sistem.Default deny, allowlist, patching, hardening, segmentasi, logging.Port terbuka, aturan firewall, versi didukung, dan log autentikasi.
Web server dan runtimeNginx/Apache/IIS, PHP, file publik, upload, header.Least privilege, TLS, pembatasan metode dan ukuran, header, izin file.Response header, konfigurasi efektif, permission, dan uji upload.
CMS atau aplikasiWordPress, Laravel, CodeIgniter, API, plugin, theme.Update, validasi, encoding, authz, CSRF, session, dependency control.Inventaris, hasil test, review kode, dan hasil pemindaian dependency.
Data dan pemulihanDatabase, object storage, backup, log, secrets.Least privilege, enkripsi, retensi, backup terpisah, uji restore.Restore report, akses DB, rotasi secret, dan audit trail.

Firewall bukan satu jenis alat

Network atau host firewall

Mengatur koneksi berdasarkan IP, port, protokol, dan state. Kontrol ini menjaga SSH, database, panel, dan service lain agar tidak terbuka ke seluruh internet.

Web Application Firewall

Menganalisis request HTTP/HTTPS dan membantu memblokir pola serangan aplikasi. WAF berguna sebagai lapisan dan virtual patch, tetapi tidak memperbaiki kode rentan.

Rate limiter

Membatasi frekuensi request pada login, reset password, search, API, atau endpoint mahal. Ambang harus didasarkan pada traffic sah dan diuji agar tidak menjadi denial of service bagi pengguna.

Kontrol aplikasi

Autentikasi, otorisasi, validasi, encoding, CSRF, session, dan audit log tetap diperlukan karena firewall tidak memahami semua aturan bisnis.

Batas etis dan operasional: lakukan pengujian hanya pada website dan infrastruktur yang Anda miliki atau yang memberikan izin tertulis. Jangan menyalin konfigurasi langsung ke production tanpa backup, change plan, pengujian staging, dan rollback plan.

Capaian Pembelajaran

Setelah menyelesaikan course ini, pembelajar diharapkan mampu:

  • Memetakan aset, akun, endpoint, data, dependency, dan pihak ketiga yang membentuk attack surface website.
  • Menjelaskan alasan bisnis dan teknis mengapa hardening web server diperlukan.
  • Menyusun baseline konfigurasi aman untuk port, service, TLS, permission, upload, header, log, dan backup.
  • Membedakan network firewall, firewall hosting, WAF, CDN, bot control, dan application rate limiter.
  • Menyusun baseline Cloudflare Free tanpa membuka jalur bypass langsung ke origin.
  • Menilai risiko plugin dan theme WordPress berdasarkan kebutuhan, sumber, pemeliharaan, permission, serta kemampuan update.
  • Memilih kombinasi hardening manual dan plugin keamanan secara proporsional.
  • Mereview konfigurasi keamanan aplikasi Laravel atau CodeIgniter sebelum production.
  • Mencegah penyalahgunaan upload, login, search, API, session, dan akses database.
  • Mendeteksi deface, judol, SEO hacking, URL spam, perubahan sitemap, dan pemilik Search Console yang mencurigakan.
  • Menyusun runbook contain, eradicate, recover, dan Search recovery tanpa menghilangkan bukti insiden.
  • Mengubah hasil audit menjadi backlog prioritas, owner, target waktu, dan acceptance criteria.

Prasyarat dan perlengkapan

  • Memahami fungsi dasar domain, DNS, hosting, database, CMS, dan halaman web.
  • Memiliki akses sah untuk melihat konfigurasi website yang digunakan sebagai latihan.
  • Siapkan inventaris domain, akun, hosting, CMS/framework, plugin/theme, database, backup, dan layanan pihak ketiga.
  • Gunakan staging atau lingkungan uji. Jangan menguji rule baru langsung pada production tanpa rollback.
  • Jangan menaruh password, private key, token, isi database, atau data pribadi di tugas yang akan dipublikasikan.

Syllabus

Syllabus terdiri atas delapan lecture dalam empat minggu. Setiap lecture menghasilkan artefak yang digabungkan menjadi baseline keamanan dan runbook insiden pada capstone.

Tabel dapat digeser ke kanan atau kiri pada perangkat seluler.

MingguLectureFokusAktivitasOutput
11. Risiko dan attack surfaceAset, ancaman, jalur masuk, dampak, dan owner.Membuat inventaris dan threat map.Attack-surface register.
12. Hardening web serverOS, service, TLS, permission, header, upload, log, backup.Mengaudit baseline origin.Server hardening checklist.
23. Firewall hosting dan WAFPort, allowlist, ModSecurity/WAF, rate limit, rule lifecycle.Membuat matriks firewall.Firewall rule matrix.
24. Cloudflare FreeProxy, Full (strict), managed rules, bot, custom rule, origin lock.Menyusun baseline edge.Cloudflare control plan.
35. WordPress dan supply chainPlugin/theme, update, akun, file, database, upload.Mereview extension yang terpasang.Plugin/theme register.
36. Plugin keamanan atau manualTrade-off, duplikasi kontrol, hybrid model, operasional.Membuat decision record.Security-control decision.
47. Laravel dan CodeIgniterSecure defaults, coding, deployment, dependency, test.Mereview release gate.Secure deployment checklist.
48. Serangan dan respons insidenDeface, data theft, SEO hack, GSC owner, brute force, search spam.Melakukan tabletop exercise.Detection map dan runbook.

Kontrak keamanan untuk setiap kontrol

  • Risiko, aset, dan jalur serangan yang ditangani ditulis dengan jelas.
  • Owner, approver, jadwal review, dan akses darurat ditetapkan.
  • Konfigurasi disimpan sebagai bukti tanpa membocorkan secret.
  • Positive test dan negative test dilakukan dari jalur yang relevan.
  • False positive, dependency, dan pengecualian tercatat serta memiliki masa berlaku.
  • Rollback, backup, monitoring, dan respons ketika kontrol gagal tersedia.

Required Reading

Bacaan course dibagi menjadi buku utama, buku pendukung, dan dokumentasi resmi yang terus diperbarui. Buku digunakan untuk membangun pemahaman yang relatif stabil mengenai ancaman, desain, secure coding, dan pengujian. Dokumentasi resmi digunakan untuk memastikan konfigurasi teknis tetap sesuai dengan versi software, fitur, kuota, serta nama menu yang berlaku ketika kontrol diterapkan.

Buku utama — wajib

  1. Malcolm McDonald — Web Security for Developers: Real Threats, Practical Defense No Starch Press, 2020, ISBN 9781593279943. Bacaan fondasi untuk memahami web server, injection, XSS, CSRF, autentikasi, session, permission, information leak, encryption, third-party code, dan denial-of-service. Prioritaskan Bab 4 serta Bab 6–17.
  2. Andrew Hoffman — Web Application Security, Second Edition O’Reilly Media, 2024, ISBN 9781098143923. Digunakan untuk pendalaman arsitektur aplikasi web modern, reconnaissance defensif, threat modeling, secure software development lifecycle, dependency, CDN, cloud deployment, API, injection, XSS, dan DoS.
  3. Tanya Janca — Alice and Bob Learn Secure Coding Wiley, 2025, print ISBN 9781394171705. Digunakan untuk secure requirements, threat modeling, desain, coding, code review, testing, release, deployment, dan penerapan secure development lifecycle pada berbagai bahasa serta framework.

Buku pendukung — direkomendasikan

  1. Dan Bergh Johnsson, Daniel Deogun, dan Daniel Sawano — Secure by Design Manning, 2019, ISBN 9781617294358. Memperkuat cara berpikir secure-by-design, validasi aman, error handling, domain modeling, serta pengamanan pipeline build–test–deploy, aplikasi legacy, microservices, dan cloud-native.
  2. Dafydd Stuttard dan Marcus Pinto — The Web Application Hacker’s Handbook: Finding and Exploiting Security Flaws, Second Edition Wiley, 2011. Bacaan lanjutan untuk memahami pola pengujian dan cara berpikir penyerang. Karena usianya, detail tools dan teknik harus diverifikasi dengan OWASP serta dokumentasi modern. Praktik hanya dilakukan pada sistem sendiri atau lingkungan yang memberikan izin tertulis.
Ketentuan hak cipta: buku di atas merupakan karya berhak cipta dan tidak menjadi bagian dari lisensi terbuka course. Gunakan buku cetak, e-book resmi, perpustakaan, atau akses institusi yang sah. Course ini tidak menyediakan salinan atau hasil pindai buku.

Dokumentasi resmi — standar dan panduan aplikasi

  1. OWASP Top Ten 2025Peta awal risiko kritis aplikasi web dan budaya secure development.
  2. OWASP: Test Application Platform ConfigurationRujukan least privilege, logging, overload handling, dan konfigurasi platform.
  3. OWASP HTTP Security Response Headers Cheat SheetRujukan CSP, HSTS, nosniff, Referrer-Policy, cookie, dan header lain.
  4. OWASP File Upload Cheat SheetRujukan validasi tipe, nama, ukuran, otorisasi, penyimpanan, dan scanning upload.
  5. OWASP Logging Cheat SheetRujukan event keamanan, perlindungan log, dan deteksi insiden.

Dokumentasi resmi — WordPress, Cloudflare, framework, dan Google Search

  1. WordPress HardeningPanduan resmi untuk update, permission, database, file editor, dan hardening.
  2. WordPress: Brute Force AttacksRujukan perlindungan autentikasi dan pengurangan beban brute force.
  3. Cloudflare Managed RulesDokumentasi Cloudflare Free Managed Ruleset dan managed rule lainnya.
  4. Cloudflare SSL/TLS Full (strict)Rujukan enkripsi dan validasi sertifikat dari edge menuju origin.
  5. Cloudflare Rate Limiting RulesRujukan pembatasan login, API, search, dan endpoint yang sering disalahgunakan.
  6. Cloudflare IP Addresses and Origin ProtectionRujukan allowlist Cloudflare dan penutupan akses langsung menuju origin.
  7. Laravel CSRF Protection dan Laravel Rate LimitingContoh kontrol bawaan framework yang tetap harus diaktifkan dan digunakan dengan benar.
  8. CodeIgniter Security GuidelinesPanduan keamanan untuk validasi, escaping, CSRF, environment, dan penggunaan fitur framework.
  9. Google: Prevent portions of your site from being abused by spamRujukan untuk internal search dan area website yang menghasilkan spam.
  10. Google Search Console: I do not recognize this ownerProsedur menghapus pengguna dan seluruh token verifikasi kepemilikan yang tidak sah.

Lecture Summaries

Lecture 01

Risiko, aset, dan attack surface

Anda tidak dapat mengamankan komponen yang tidak diketahui keberadaannya. Mulai dari inventaris domain, subdomain, DNS, server, runtime, CMS, plugin, theme, repository, database, object storage, backup, service account, webhook, email admin, Search Console, Analytics, dan vendor.

Isi minimum attack-surface register

  • Nama aset, fungsi bisnis, data yang diproses, klasifikasi data, dan tingkat kritikalitas.
  • URL, IP, port, endpoint admin, endpoint publik, upload, search, API, dan webhook.
  • Owner bisnis, owner teknis, administrator, vendor, akun service, serta cara recovery.
  • Teknologi, versi, status dukungan, dependency, plugin/theme, dan tanggal update terakhir.
  • Kontrol preventif, sinyal deteksi, lokasi log, backup, RTO/RPO, dan tanggal uji restore.

Gunakan skenario, bukan daftar ketakutan

Tulis skenario dalam format: aktor atau kejadian → jalur masuk → aset → dampak → kontrol → sinyal → respons. Contoh: credential WordPress bocor → login admin → editor theme → web shell → deface dan pencurian data → MFA, least privilege, file editing disabled, file integrity monitoring → login baru dan file berubah → revoke session, isolasi, restore bersih, rotasi secret.

Pertanyaan refleksi: bila akun email utama diretas, berapa banyak akun website, DNS, hosting, dan Search Console yang dapat diambil alih melalui password reset?

Lecture 02

Hardening web server dan origin

Web server aman berarti konfigurasi efektifnya hanya membuka fungsi yang dibutuhkan, menjalankan proses dengan hak minimum, melindungi secret dan file, membatasi request berbahaya atau terlalu mahal, serta menghasilkan bukti untuk deteksi dan pemulihan.

AreaTindakan teknisVerifikasi
OS dan runtimeGunakan versi didukung; pasang security update; hapus service, module, sample app, dan akun yang tidak diperlukan; pisahkan staging dan production.Inventaris paket, EOL register, port scan internal, dan change record.
Akses administratorGunakan SSH key atau mekanisme kuat, MFA/VPN bila tersedia, nonaktifkan login root jarak jauh, batasi sumber IP, dan hindari akun bersama.Uji akses dari IP sah dan tidak sah; review auth log dan daftar key.
Port dan serviceBuka hanya HTTP/HTTPS publik; SSH/SFTP/panel hanya dari jalur admin; database, cache, queue, dan metrics tidak diekspos ke internet.Bandingkan port aktual dengan matriks kebutuhan.
Process dan filesystemJalankan worker sebagai user non-root; docroot hanya berisi file publik; direktori writable dibatasi; hindari permission 777; lindungi config, backup, log, repository, dan secret.Review user proses, ownership, permission, dan uji akses HTTP ke file sensitif.
TLSPaksa HTTPS, gunakan sertifikat valid, protokol dan cipher modern, renewal monitoring, serta HSTS hanya setelah seluruh cakupan HTTPS siap.Uji sertifikat, chain, redirect, mixed content, dan expiry alert.
HTTPNonaktifkan directory listing, default page, debug, stack trace, version banner, dan method yang tidak dibutuhkan; tetapkan limit body, header, request, timeout, dan koneksi.Periksa response, error page, OPTIONS, request besar, dan timeout.
UploadAllowlist extension dan tipe; verifikasi isi; ubah nama; batasi ukuran; simpan di luar webroot bila mungkin; cegah eksekusi; scan; hanya izinkan pengguna sah.Uji file valid, tipe palsu, double extension, ukuran berlebih, dan akses langsung.
DatabaseJangan buka publik; gunakan akun aplikasi least privilege; pisahkan akun admin/migration; batasi sumber koneksi; backup terenkripsi; audit akses.Uji koneksi dari luar, privilege efektif, log, dan restore.
Log dan waktuCatat akses, error, login, perubahan hak, upload, config, dan event aplikasi; sinkronkan waktu; lindungi log dari modifikasi; kirim salinan keluar host.Simulasikan event, temukan di log, dan pastikan alert diterima.
BackupSimpan backup terpisah dan tidak dapat ditulis oleh akun web; tetapkan retensi; backup file, database, config, DNS, dan artefak deployment; uji restore.Laporan restore dengan waktu, checksum, dan hasil uji fungsi.

Header keamanan sebagai lapisan browser

Baseline yang perlu dievaluasi, bukan ditempel tanpa pengujian:
Strict-Transport-Security: aktifkan bertahap setelah HTTPS tervalidasi
Content-Security-Policy-Report-Only: petakan sumber script/style terlebih dahulu
Content-Security-Policy: terapkan setelah pelanggaran sah diselesaikan
X-Content-Type-Options: nosniff
Referrer-Policy: strict-origin-when-cross-origin
Permissions-Policy: nonaktifkan fitur browser yang tidak dibutuhkan
Set-Cookie: Secure; HttpOnly; SameSite sesuai alur aplikasi
Cache-Control: no-store untuk respons yang benar-benar sensitif

CSP yang terlalu longgar tidak banyak membantu; CSP yang terlalu ketat dapat merusak fungsi. HSTS dengan cakupan dan durasi panjang juga dapat mengunci pengguna keluar ketika sertifikat atau subdomain belum siap. Gunakan mode report, inventaris dependency, rollout bertahap, dan rollback plan.

Pertanyaan refleksi: file mana yang masih harus dapat ditulis oleh proses web, dan apa alasan bisnis setiap permission tersebut?

Lecture 03

Firewall hosting: port, request, dan resource abuse

“Firewall di hosting” dapat berarti security group jaringan, host firewall, control panel firewall, ModSecurity, atau WAF dari provider. Tanyakan lokasi enforcement, jenis traffic yang dilihat, rule yang aktif, log yang tersedia, siapa yang mengelola update, dan bagaimana membuat pengecualian.

Baseline jaringan dan hosting

  • Default deny inbound. Publikasikan hanya port yang dibutuhkan. Port 80 biasanya hanya untuk redirect atau challenge sertifikat; layanan utama berjalan melalui 443.
  • Batasi jalur admin. SSH, SFTP, database administration, dan control panel diakses melalui VPN, bastion, allowlist IP, atau proteksi identitas yang sesuai.
  • Database dan service internal tidak publik. Redis, Elasticsearch, database, queue, storage console, monitoring, dan admin API ditempatkan pada jaringan privat atau aturan sumber terbatas.
  • Perlakukan IPv4 dan IPv6 setara. Website dapat tetap terbuka melalui IPv6 bila rule hanya dibuat untuk IPv4.
  • Batasi egress bila arsitektur memungkinkan. Server web tidak perlu menghubungi sembarang tujuan. Dokumentasikan update server, email, payment, API, DNS, time sync, dan storage yang benar-benar dibutuhkan.
  • Log deny dan perubahan rule. Hindari logging berlebihan yang justru memenuhi disk; buat retensi, agregasi, dan alert untuk pola penting.

Struktur firewall rule matrix

Rule ID dan tujuan:
Lapisan: network / host / hosting WAF / application
Sumber dan tujuan:
Port, protokol, hostname, path, method:
Kondisi dan threshold:
Action: allow / challenge / rate limit / block
Pengecualian dan alasannya:
Owner dan approver:
Tanggal mulai, review, dan kedaluwarsa:
Positive test, negative test, rollback:
Log, alert, dan bukti:

Mulai dari observasi atau challenge ketika memungkinkan, lalu evaluasi false positive sebelum block. Jangan memblokir crawler terverifikasi, payment callback, health check, monitoring, mobile app, atau partner API hanya karena traffic-nya otomatis.

Yang tidak dilakukan firewall: memperbarui plugin, menghapus backdoor, memperbaiki broken authorization, mengenkripsi backup, memverifikasi pemilik Search Console, atau memastikan database hasil restore bersih.

Pertanyaan refleksi: apabila WAF dimatikan selama troubleshooting, kontrol apa yang tetap melindungi origin dan siapa yang harus menyetujui pengecualian itu?

Lecture 04

Cloudflare Free sebagai firewall tambahan

Cloudflare bekerja di edge ketika record DNS diproxy. Traffic dapat diperiksa sebelum mencapai hosting, tetapi manfaat ini dapat dilewati bila IP origin masih menerima koneksi publik langsung. Karena itu, konfigurasi Cloudflare dan origin harus dirancang sebagai satu sistem.

Baseline yang disarankan

  1. Amankan akun. Aktifkan MFA, gunakan anggota tim individual, batasi API token per zone dan permission, audit token lama, serta aktifkan notifikasi keamanan.
  2. Proxy hostname web. Pastikan A/AAAA/CNAME untuk website yang ingin dilindungi berstatus proxied. Inventaris hostname DNS-only yang dapat mengungkap origin.
  3. Enkripsi end-to-end. Pasang sertifikat valid di origin dan gunakan SSL/TLS Full (strict). Jangan menggunakan Flexible untuk menyembunyikan origin yang masih HTTP.
  4. Paksa HTTPS. Uji redirect, mixed content, webhook, API, dan subdomain. Terapkan HSTS bertahap setelah seluruh host yang tercakup siap.
  5. Aktifkan managed protection. Gunakan Cloudflare Free Managed Ruleset yang tersedia pada seluruh paket dan pantau Security Events.
  6. Aktifkan Bot Fight Mode dengan pengujian. Periksa dampak pada search engine, monitoring, integrasi, dan WordPress loopback. Gunakan daftar bot terverifikasi bila rule menyediakan kondisinya.
  7. Gunakan custom rules secara hemat. Paket Free menyediakan jumlah rule terbatas. Prioritaskan jalur berisiko tinggi dan pertahankan ruang untuk respons insiden.
  8. Rate-limit endpoint mahal. Login, reset password, OTP, search, API, export, dan form harus memiliki limit di edge dan/atau aplikasi. Threshold diturunkan dari baseline traffic sah, bukan angka tebakan.
  9. Kunci origin. Allowlist sumber Cloudflare pada port web lalu blok sumber publik lain, sambil tetap mengizinkan jalur admin dan integrasi yang sah. Perbarui daftar IP resmi dan simpan akses darurat.
  10. Pastikan IP pengunjung terbaca benar. Konfigurasikan web server dan aplikasi untuk mempercayai header IP hanya dari proxy Cloudflare yang sah; jangan percaya header yang dapat dikirim langsung oleh siapa pun.
  11. Jangan cache data privat. Exclude halaman admin, user-specific response, cart, API sensitif, dan halaman ber-session sesuai perilaku aplikasi.

Contoh alokasi custom rule pada paket gratis

PrioritasKondisi logisAction awalCatatan pengujian
1Login atau admin dari sumber yang tidak dikenal.Managed Challenge atau kebijakan akses.Uji admin, SSO, mobile, monitoring, dan pengguna di balik NAT.
2Request file executable di direktori upload WordPress.Block.Kontrol yang sama tetap wajib di origin.
3Endpoint seperti XML-RPC yang sudah dipastikan tidak digunakan.Block atau allowlist integrasi.Periksa Jetpack, aplikasi mobile, pingback, dan integrasi lain.
4HTTP method yang tidak diperlukan pada kelompok path tertentu.Block.Jangan memblokir PUT/PATCH/DELETE pada API yang memang menggunakannya.
5Pola negara, ASN, URI, atau traffic spesifik berdasarkan bukti insiden.Challenge dahulu, lalu block bila terverifikasi.Hindari geo-block global tanpa memahami pengguna dan bot sah.

Fitur, kuota, dan tampilan dashboard dapat berubah. Pada dokumentasi Agustus 2026, custom rules tersedia di Free dengan lima rule, Free Managed Ruleset tersedia pada seluruh paket, Bot Fight Mode tersedia di Free, dan perlindungan DDoS standar tersedia pada seluruh paket. Verifikasi kembali dokumentasi saat implementasi.

Pertanyaan refleksi: dapatkah penyerang mengakses origin melalui IP lama, subdomain DNS-only, service email, atau hostname staging?

Lecture 05

WordPress: plugin, theme, akun, dan supply chain

Bahaya bukan sekadar “plugin terlalu banyak”. Risiko muncul ketika kode pihak ketiga tidak dibutuhkan, sumbernya tidak dapat dipercaya, sudah tidak dipelihara, memiliki akses luas, tidak kompatibel, gagal diperbarui, atau tidak ada owner yang memantau advisori dan menanganinya.

Gate sebelum memasang plugin atau theme

  • Masalah apa yang diselesaikan dan apakah WordPress, hosting, CDN, atau kode ringan sudah menyediakan fungsi tersebut?
  • Apakah berasal dari WordPress.org atau vendor resmi, bukan versi nulled, bajakan, hasil unduhan ulang, atau file dari sumber tidak jelas?
  • Apakah update, changelog, kompatibilitas, dokumentasi, support, dan penanganan isu keamanannya masih aktif?
  • Permission, data, cookie, outbound connection, akun remote, dan akses database apa yang diminta?
  • Apakah fungsinya tumpang tindih dengan plugin security, cache, backup, SEO, redirect, atau builder lain?
  • Siapa owner, bagaimana update diuji, bagaimana rollback dilakukan, dan kapan plugin dihapus bila tidak lagi digunakan?
Kolom registerPertanyaan reviewKeputusan
Fungsi dan kebutuhanApakah fungsi digunakan dan mempunyai owner?Pertahankan, ganti, atau hapus.
Sumber dan pemeliharaanApakah vendor resmi, versi didukung, dan update tersedia?Update, mitigasi sementara, atau retire.
Hak dan dataData apa dibaca/dikirim dan capability apa ditambahkan?Setujui, batasi, atau tolak.
Overlap dan konflikApakah menduplikasi WAF, cache, login, backup, atau redirect?Pilih satu owner kontrol.
RecoveryApakah ada backup, staging, rollback, dan dokumentasi konfigurasi?Siap update atau belum.

Baseline WordPress

  • Update WordPress core, plugin, theme, PHP, dan web server; uji perubahan yang berisiko di staging.
  • Hapus plugin dan theme yang tidak digunakan—deactivate bukan menghapus kode dari server.
  • Gunakan MFA, password unik, akun individual, role minimum, review admin, dan cabut akun mantan vendor atau staf.
  • Nonaktifkan editor file melalui define('DISALLOW_FILE_EDIT', true); agar akun admin yang diambil alih tidak mudah mengedit PHP dari dashboard.
  • Lindungi wp-config.php, secret, salt, backup, log, dan repository; jangan taruh salinan seperti .old, .zip, atau .bak di webroot.
  • Batasi directory writable dan cegah eksekusi PHP pada upload. Jangan menggunakan permission 777 sebagai solusi masalah update.
  • Gunakan akun database least privilege dan pisahkan privilege migrasi/administrasi bila operasional memungkinkan.
  • Tentukan kebutuhan XML-RPC, REST API, application password, pingback, dan remote publishing sebelum membatasi fitur.
  • Matikan display error/debug di production, tetapi tetap kirim error yang aman ke log terlindungi.
  • Simpan backup di luar akun hosting utama dan uji restore; backup yang ikut terenkripsi atau diubah penyerang bukan rencana pemulihan.

Pertanyaan refleksi: plugin mana yang dapat dihapus hari ini tanpa menghilangkan fungsi bisnis, dan siapa yang memverifikasi bahwa penghapusan aman?

Lecture 06

Plugin keamanan atau hardening manual?

Pilihan yang sehat biasanya bukan “plugin atau manual”, melainkan pembagian kontrol. Beberapa kontrol harus berada sebelum PHP dijalankan; beberapa membutuhkan integrasi WordPress; lainnya perlu diterapkan pada aplikasi, database, DNS, identitas, atau proses operasional.

DimensiPlugin keamananHardening manual/server
Kecepatan implementasiFitur seperti 2FA, login limit, audit, file scan, dan alert dapat tersedia dalam satu antarmuka.Membutuhkan pengetahuan hosting, server, WordPress, dan dokumentasi perubahan.
Lokasi enforcementSebagian kontrol berjalan setelah request mencapai WordPress/PHP.Firewall, web server, filesystem, dan edge dapat menolak request lebih awal.
VisibilitasDashboard dan notifikasi membantu tim kecil, tetapi interpretasi tetap diperlukan.Log lebih lengkap dan fleksibel, tetapi perlu agregasi, alert, serta operator.
Attack surfaceMenambah dependency, update, konfigurasi, data processing, dan potensi konflik.Mengurangi dependency plugin, tetapi salah konfigurasi dapat memutus layanan atau memberi rasa aman palsu.
PemeliharaanVendor memperbarui signature/fitur; organisasi tetap harus menguji dan memperpanjang lisensi bila ada.Tim sendiri memantau perubahan stack, vulnerability, rule, dan kompatibilitas.
CakupanBaik untuk sinyal dan kontrol di level WordPress; tidak melihat seluruh host atau jalur bypass.Dapat melindungi origin dan service non-WordPress; tidak otomatis memahami role dan event WordPress.

Model hybrid yang disarankan

  1. Fondasi di hosting/server: patching, akun admin, port, TLS, permission, runtime, database, backup, logging, dan pemisahan environment.
  2. Edge: DDoS protection, managed WAF, bot control, rate limiting, serta perlindungan origin dari bypass.
  3. WordPress: core/plugin/theme governance, least privilege, MFA, session, update, upload, file editing, dan audit.
  4. Satu plugin keamanan yang terpilih bila diperlukan: gunakan untuk fungsi operasional yang belum tersedia, misalnya 2FA, audit trail, alert, file integrity, atau malware scan.
  5. Hindari kontrol tumpang tindih: beberapa plugin security yang sama-sama memasang WAF, memodifikasi login, menulis .htaccess, atau memblokir bot dapat berkonflik dan menyulitkan diagnosis.

Plugin security tidak dapat membersihkan seluruh server bila attacker memiliki akses root, database, cron, akun hosting, atau DNS. Sebaliknya, konfigurasi manual tidak otomatis lebih aman bila tidak terdokumentasi, tidak diuji, dan tidak ada orang yang memeliharanya.

Pertanyaan refleksi: apakah tim dapat menjelaskan kontrol mana yang dimiliki Cloudflare, hosting, plugin, dan aplikasi—tanpa ada gap atau tiga kontrol yang berebut melakukan hal yang sama?

Lecture 07

Laravel, CodeIgniter, dan secure development

Mengembangkan website sendiri tidak otomatis lebih aman daripada CMS. Laravel dan CodeIgniter menyediakan primitive keamanan, tetapi developer masih menentukan apakah validasi digunakan, authorization diterapkan pada setiap object, secret terlindungi, debug dimatikan, dependency diperbarui, dan deployment dilakukan dengan least privilege.

Secure release gate

  • Versi dan dependency: framework, runtime, library, container image, dan package berada pada versi didukung; lakukan software composition analysis dan tindak lanjuti vulnerability.
  • Production mode: debug dan stack trace publik mati; error generik ke pengguna; detail ke log; development tool, profiler, test route, sample file, dan debug endpoint tidak terdeploy.
  • Secret: .env, key, token, credential DB, private key, dan backup tidak berada di repository atau webroot; akses dan rotasi didokumentasikan.
  • Authentication: password disimpan dengan fungsi framework yang aman; MFA untuk akun berisiko; reset password dan verifikasi memiliki expiry, one-time use, rate limit, dan tidak membocorkan keberadaan akun.
  • Authorization: periksa role dan ownership pada server untuk setiap object dan aksi; menyembunyikan tombol pada UI bukan access control.
  • Input dan output: validasi allowlist pada boundary; gunakan encoding/escaping sesuai konteks; jangan merangkai SQL dari input; gunakan parameter binding atau ORM dengan benar.
  • Mass assignment: persist hanya field yang telah divalidasi dan diizinkan; jangan menerima role, user_id, is_admin, harga, atau status dari request tanpa aturan bisnis.
  • CSRF dan method: gunakan proteksi CSRF framework untuk state-changing request berbasis cookie; batasi route dan method; jangan membuat pengecualian global demi memperbaiki satu integrasi.
  • Session dan cookie: gunakan Secure, HttpOnly, SameSite yang sesuai, rotasi session saat login/perubahan privilege, timeout proporsional, revoke session, dan perlindungan fixation.
  • CORS: allowlist origin, method, dan header yang benar-benar diperlukan; jangan memakai wildcard bersama credential.
  • Upload dan download: perlakukan file sebagai input tidak tepercaya; verifikasi isi, ukuran, nama, akses, penyimpanan, scanning, dan header download.
  • API dan webhook: scope token minimum, expiry/rotation, signature dan replay protection, schema validation, rate limit, idempotency, serta audit event.
  • Database dan data: least privilege, parameterized query, backup aman, klasifikasi, minimisasi, retensi, enkripsi yang tepat, dan audit akses data sensitif.
  • Testing: unit/integration test untuk authorization dan validation, SAST, SCA, secret scan, DAST terotorisasi, review konfigurasi, serta test negative path.
KebutuhanLaravelCodeIgniter 4Kesalahan yang dihindari
ValidasiValidation atau Form Request.Validation rules.Menyimpan seluruh request tanpa allowlist field.
OutputBlade escaping secara default; raw output hanya untuk data tepercaya.Gunakan esc() sesuai konteks.Mencetak input pengguna sebagai HTML mentah.
CSRFMiddleware pada web routes dan token pada form.CSRF filter pada request yang mengubah state.Menonaktifkan proteksi secara global.
AuthorizationPolicies, gates, middleware, dan pemeriksaan object.Filters serta pemeriksaan role/ownership pada server.Hanya mengandalkan menu atau tombol tersembunyi.
DatabaseEloquent/Query Builder dengan binding dan model field control.Query Builder atau binding.String concatenation dari input pengguna.
Rate limitRate limiter dan middleware untuk route sensitif.Implementasi filter/service sesuai endpoint dan infrastruktur.Hanya mengandalkan IP block manual setelah server overload.

Pertanyaan refleksi: bisakah pengguna mengubah ID pada URL atau request dan mengakses data milik orang lain meskipun sudah login?

Lecture 08

Mencegah, mendeteksi, dan merespons serangan website

Kontrol yang efektif menghubungkan ancaman dengan sinyal dan tindakan. Jangan menunggu pengunjung melaporkan bahwa halaman sudah berubah atau hasil Google sudah dipenuhi istilah judol.

SkenarioJalur umumSinyalKontrol dan respons awal
Deface atau halaman judolAkun admin bocor, plugin/theme rentan, upload/RCE, permission terlalu luas, deployment disusupi.File berubah, akun/cron baru, redirect, halaman asing, checksum berbeda.MFA, patch, least privilege, cegah eksekusi upload, file integrity; isolasi, simpan bukti, rebuild/restore bersih, rotasi credential.
Pencurian data pribadi/databaseSQL injection, broken access control, backup atau .env publik, DB terbuka, credential bocor.Query/export besar, akses object lintas akun, outbound anomali, file dump, login DB asing.Parameterized query, authz per object, DB privat dan least privilege, minimisasi data, audit; contain, nilai cakupan, rotasi secret, ikuti kewajiban insiden.
SEO hacking atau cloakingTemplate/DB/cache disisipi, output berbeda untuk crawler/referrer/device, sitemap atau meta dimodifikasi.Query dan landing page asing di GSC, title/snippet judol, URL baru, Security Issues, sitemap berubah.Monitor GSC dan file/DB, periksa URL Inspection; bersihkan seluruh persistence, perbaiki jalur masuk, 404/410 URL tidak sah, request review bila tersedia.
Owner Search Console asingToken HTML/meta/DNS, Analytics, Tag Manager, atau akun Google yang dikompromikan.Notifikasi owner, file verifikasi asing, DNS TXT baru, permission berubah.Dokumentasikan, hapus owner dan seluruh verification token, amankan DNS/GA/GTM/email, rotasi akses, audit perubahan dan site lain.
Brute force/credential stuffingLogin, XML-RPC, API auth, reset password, OTP, credential reuse.Lonjakan POST, 401/403, CPU/koneksi naik, banyak username/IP/ASN, reset request.MFA, unique password, breached-password defense, rate limit, challenge, progressive delay, alert; hindari lockout global yang dapat disalahgunakan untuk DoS.
Search spam terindeksQuery pengguna dipantulkan ke title/body/meta dan menghasilkan URL crawlable tanpa batas.URL ?q= asing, crawl spike, off-topic snippet, query panjang berulang, server load.Escape output, batasi input/resource, rate limit, noindex pada hasil search, keluarkan dari sitemap/internal link; 404/410 URL invalid dan gunakan removal sementara bila mendesak.

Jika front-end normal tetapi snippet Google menjadi judol

  1. Periksa Search Console: Security Issues, Manual Actions, Performance query/page, Page Indexing, Sitemaps, URL Inspection, Users and permissions.
  2. Gunakan pencarian diagnostik seperti site:domainanda.example casino, site:domainanda.example slot, serta variasi istilah spam. Operator site: membantu diagnosis, tetapi bukan daftar indeks lengkap.
  3. Bandingkan HTML hasil URL Inspection dengan source dan rendered page yang diterima pengguna. Periksa conditional code berdasarkan user-agent, referrer, cookie, device, IP, atau status login.
  4. Audit template, database, sitemap, robots, cache, plugin/theme, upload, cron, scheduled task, user, SSH key, deployment key, dan service account. Cari persistence, bukan hanya teks yang terlihat.
  5. Setelah membersihkan akar masalah, kembalikan URL palsu ke 404/410 atau noindex sesuai jenisnya, perbarui sitemap, minta crawl ulang, dan gunakan Removals hanya untuk percepatan sementara.

Jika ada owner Search Console pada subdirektori

URL-prefix property dapat mencakup suatu path. Kehadiran owner tidak otomatis membuktikan server sepenuhnya dikuasai, tetapi menunjukkan bahwa seseorang memiliki atau pernah memiliki metode verifikasi yang diterima Google. Hapus user/owner yang tidak sah dan juga hapus seluruh token verifikasinya; menghapus nama dari Search Console saja tidak menghilangkan token yang dapat dipakai untuk verifikasi ulang.

  • Periksa file HTML verifikasi pada root atau subdirektori, meta tag, DNS TXT, Google Analytics, Google Tag Manager, serta metode provider domain.
  • Amankan akun Google, registrar, DNS, hosting, Analytics, Tag Manager, repository, dan email pemulihan dengan MFA dan review session.
  • Gunakan Domain property berbasis DNS milik organisasi untuk memperoleh pandangan seluruh protokol dan subdomain, tetapi tetap audit URL-prefix property yang dibuat pihak lain.

Mengamankan fitur search agar tidak menjadi pabrik URL spam

  • Batasi panjang, karakter, jumlah token, wildcard, filter, page depth, dan biaya query berdasarkan kebutuhan sah; escape query ketika ditampilkan.
  • Jangan memasukkan input mentah ke title, meta description, heading, structured data, atau HTML tanpa encoding dan aturan konten.
  • Berikan noindex melalui meta robots di <head> atau X-Robots-Tag pada halaman hasil search. Jangan memblokir halaman itu hanya melalui robots.txt karena crawler harus dapat mengambil respons untuk melihat noindex.
  • Jangan masukkan hasil search ke sitemap dan jangan membuat internal link tak terbatas dari kombinasi parameter.
  • Rate-limit serta cache query aman secara hati-hati; tolak pola invalid sebelum menjalankan query mahal ke database.
  • Monitor top query, URL baru, response time, error, crawl, dan ukuran indeks. Alert ketika istilah off-topic atau jumlah kombinasi URL melonjak.

Runbook respons insiden

  1. Confirm dan preserve. Catat waktu, URL, screenshot, header, log, akun, file, hash, dan alert. Jangan buru-buru menghapus semua bukti.
  2. Contain. Isolasi host atau aplikasi terdampak, aktifkan maintenance/read-only bila perlu, blok jalur serangan, cabut session dan token, serta rotasi credential dari perangkat yang bersih.
  3. Scope. Periksa seluruh site dalam akun/server yang sama, DNS, email, database, backup, cron, repository, CI/CD, cloud key, vendor, dan Search Console.
  4. Eradicate. Hapus persistence, akun asing, file, job, dan dependency berbahaya; patch akar masalah; rebuild dari artefak terpercaya atau restore backup yang telah diverifikasi bersih.
  5. Recover. Uji fungsi, keamanan, permission, monitoring, backup, dan data. Buka traffic bertahap dan pantau recurrence.
  6. Search recovery. Perbaiki status URL, sitemap, robots/noindex, owner GSC, Security Issues dan Manual Actions; request review atau recrawl setelah akar masalah selesai.
  7. Learn. Buat timeline, root cause, dampak, control gap, tindakan korektif, owner, due date, dan bukti efektivitas.

Pertanyaan refleksi: apakah tim dapat memulihkan website dari artefak yang diketahui bersih, atau hanya memiliki salinan yang mungkin sudah memuat backdoor?

Assignments

Gunakan website milik sendiri atau skenario laboratorium. Sensor IP, credential, token, data pribadi, dan detail lain yang dapat disalahgunakan sebelum membagikan hasil.

A1

Attack-Surface Register

Inventaris domain, akun, host, port, CMS/framework, plugin/theme, database, backup, endpoint, integrasi, data, owner, dan status dukungan.

Output: register dengan prioritas kritikalitas dan lima gap awal.

A2

Audit Hardening Origin

Periksa patching, service, akses admin, TLS, permission, webroot, upload, header, debug, log, database, dan restore.

Output: checklist dengan evidence, status, risiko, dan tindakan.

A3

Firewall Rule Matrix

Petakan firewall hosting, WAF, rate limit, jalur admin, exception, owner, test, expiry, serta logging.

Output: matriks rule dan test plan tanpa secret.

A4

Review Cloudflare Free

Nilai proxied DNS, Full (strict), managed rules, bot setting, custom rule, rate limiting, cache privat, real IP, dan origin bypass.

Output: baseline, gap, rollout, dan rollback plan.

A5

Governance WordPress atau Framework

Pilih satu: audit plugin/theme WordPress atau secure release gate Laravel/CodeIgniter.

Output: decision register dengan owner dan acceptance criteria.

A6

Tabletop SEO Hacking

Simulasikan laporan “website normal, tetapi snippet Google menjadi judol” dan owner GSC asing.

Output: timeline deteksi, containment, evidence, eradication, recovery, dan communication.

Prioritas penerapan

WaktuFokusContoh tindakanDefinition of done
Hari iniTutup risiko takeover dan kehilangan total.MFA admin, backup terpisah, patch kritis, debug off, DB tidak publik, review GSC owner, Full (strict), login limit.Akses diuji, backup dapat dibaca, owner sah tercatat, dan gap kritis memiliki containment.
7 hariKurangi attack surface dan tingkatkan deteksi.Hapus plugin/theme tidak digunakan, kunci origin, security header bertahap, central log, alert, noindex internal search.Inventaris dan bukti kontrol tersedia; false positive diuji.
30 hariBangun operasi berulang.Dependency scan, restore drill, access review, firewall review, tabletop incident, change/exception lifecycle.Owner, cadence, SLA tindakan, dan efektivitas kontrol dapat diukur.

Self-Assessment

Buka setiap pertanyaan setelah menulis jawaban sendiri.

1. Apakah HTTPS berarti website sudah aman?

Kunci: Tidak. HTTPS melindungi data dalam perjalanan dan identitas endpoint ketika dikonfigurasi benar. Ia tidak memperbaiki plugin rentan, authorization, malware, database publik, credential bocor, atau backup yang tidak aman.

2. Apa perbedaan utama firewall hosting dan Cloudflare?

Kunci: Firewall hosting/host menjaga koneksi dan request di dekat origin. Cloudflare memfilter traffic di edge untuk hostname yang diproxy. Keduanya saling melengkapi; origin harus ditutup dari bypass langsung.

3. Mengapa WAF bukan pengganti patch?

Kunci: WAF hanya memitigasi request yang cocok dengan rule dan dapat dilewati atau menghasilkan false negative. Vulnerability dan persistence pada aplikasi tetap ada sampai akar masalah diperbaiki.

4. Apakah jumlah plugin yang sedikit otomatis aman?

Kunci: Tidak. Satu plugin kritis yang tidak dipelihara dapat lebih berbahaya daripada beberapa plugin yang diperlukan dan dikelola baik. Nilai kebutuhan, sumber, hak, pemeliharaan, update, owner, dan recovery.

5. Kapan plugin keamanan WordPress layak digunakan?

Kunci: Ketika ia menyediakan kontrol operasional yang dibutuhkan—misalnya MFA, audit, alert, file integrity, atau scan—dan telah dinilai, diuji, dimiliki, serta tidak menduplikasi kontrol lain secara berbahaya.

6. Apakah Laravel atau CodeIgniter otomatis mengamankan aplikasi?

Kunci: Tidak. Framework menyediakan fitur keamanan, tetapi developer harus menggunakannya dengan benar, mengaktifkan production mode, melindungi secret, menerapkan authz, memperbarui dependency, serta menguji deployment.

7. Apa tindakan saat snippet Google menjadi judol tetapi halaman terlihat normal?

Kunci: Periksa GSC dan URL Inspection, query serta landing page asing, source/rendered content, conditional output, file, DB, sitemap, cache, cron, akun, log, dan persistence. Bersihkan akar masalah sebelum meminta recrawl atau review.

8. Mengapa menghapus owner GSC saja belum cukup?

Kunci: Token verifikasi HTML, meta, DNS, Analytics, Tag Manager, atau metode lain dapat tetap ada dan dipakai untuk verifikasi ulang. Hapus seluruh token dan amankan akun yang dapat menambahkannya.

9. Mengapa robots.txt saja bukan cara tepat men-deindex halaman search?

Kunci: Jika crawling diblokir, Google mungkin tidak dapat melihat meta robots atau header noindex. Berikan noindex pada respons yang dapat dicrawl, keluarkan dari sitemap/internal link, dan tangani URL invalid dengan status yang benar.

10. Apa bukti bahwa backup benar-benar berguna?

Kunci: Restore berhasil pada lingkungan aman, integritas dan kebersihan diperiksa, fungsi diuji, RTO/RPO dicatat, serta backup tidak dapat diubah oleh akun web yang dikompromikan.

Capstone

Buat Paket Baseline Keamanan dan Respons Insiden Website untuk satu website nyata yang Anda kelola atau skenario laboratorium. Jangan melakukan serangan aktif; gunakan review konfigurasi, evidence yang aman, dan tabletop exercise.

Deliverable wajib

  1. Scope, arsitektur sederhana, klasifikasi data, owner, dan attack-surface register.
  2. Threat map untuk minimal enam skenario: deface/judol, data theft, SEO hacking, GSC takeover, brute force, dan search spam.
  3. Server hardening checklist dengan evidence, gap, risk rating, owner, due date, dan acceptance criteria.
  4. Firewall matrix untuk hosting, edge, WAF, rate limiting, exception, test, log, dan expiry.
  5. Cloudflare Free baseline atau alternatif edge-control plan, termasuk pencegahan origin bypass.
  6. Plugin/theme register WordPress atau secure release gate Laravel/CodeIgniter.
  7. Monitoring map: event, log source, threshold, alert recipient, triage, escalation, dan retensi.
  8. Runbook insiden dan Search recovery, disertai satu hasil tabletop exercise.
  9. Roadmap Hari Ini, 7 Hari, dan 30 Hari beserta keputusan risiko residual.

Rubrik penilaian

Dimensi0 — Belum ada1 — Dasar2 — Memadai3 — Kuat
Scope dan risikoAset dan data tidak jelas.Inventaris parsial.Aset, data, ancaman, dampak, dan owner terhubung.Dependency, jalur takeover, dan risiko residual juga diuji.
HardeningChecklist generik tanpa bukti.Sebagian konfigurasi diperiksa.Server, runtime, file, DB, TLS, log, dan backup memiliki evidence.Positive/negative test, rollback, serta drift review tersedia.
Firewall dan edgeHanya menyebut “pakai firewall”.Rule ada tanpa lifecycle.Layer, kondisi, action, owner, test, log, dan exception jelas.Origin bypass, real IP, false positive, dan emergency rule diuji.
CMS/aplikasiMengandalkan plugin atau framework saja.Kontrol dasar ada.Supply chain, authz, input/output, session, upload, secret, dan dependency direview.Release gate dan automated check menjadi bagian workflow.
Detection dan responseTidak ada sinyal atau runbook.Alert parsial.Skenario, log, triage, contain, recover, dan Search recovery tersedia.Tabletop diuji, gap diperbaiki, serta waktu respons diukur.

Definition of done

  • Setiap aset kritis memiliki owner dan metode recovery yang dapat digunakan.
  • Tidak ada database, secret, backup, debug endpoint, atau control panel yang terbuka tanpa kebutuhan dan kontrol.
  • Firewall, Cloudflare, server, CMS/framework, dan aplikasi memiliki pembagian tugas yang jelas.
  • Admin memakai MFA dan least privilege; owner Search Console serta token verifikasi telah direview.
  • Login, upload, search, API, dan endpoint mahal memiliki kontrol serta monitoring.
  • Backup telah direstore dan artefak pemulihan dinilai bersih.
  • Tim dapat mendeteksi dan menangani SEO hacking meskipun front-end terlihat normal.
  • Gap memiliki prioritas, owner, due date, acceptance criteria, dan keputusan risiko residual.

FAQ dan Referensi

Apakah SSL atau HTTPS sudah cukup untuk mengamankan website?

Tidak. HTTPS melindungi koneksi antara pihak yang berkomunikasi ketika dikonfigurasi benar. Ia tidak mencegah plugin rentan, account takeover, SQL injection, broken authorization, malware pada server, atau pencurian backup.

Apakah tetap perlu firewall hosting jika sudah menggunakan Cloudflare?

Ya. Firewall hosting menjaga origin, port admin, database, dan service yang tidak melewati Cloudflare. Ia juga mencegah akses langsung ke origin yang dapat melewati kontrol edge.

Lebih baik plugin keamanan WordPress atau hardening manual?

Gunakan pembagian berlapis. Fondasi server, akun, TLS, permission, database, backup, dan edge tidak boleh bergantung pada plugin. Tambahkan satu plugin yang dinilai baik bila dibutuhkan untuk 2FA, audit, alert, file integrity, atau scanning di level WordPress.

Apakah semakin banyak plugin keamanan berarti semakin aman?

Tidak. Plugin yang saling tumpang tindih dapat menambah attack surface, beban, konflik, false positive, dan kesulitan troubleshooting. Setiap kontrol harus memiliki satu tujuan dan owner yang jelas.

Apakah website Laravel atau CodeIgniter lebih aman daripada WordPress?

Tidak otomatis. Framework dapat memberi primitive keamanan, tetapi aplikasi tetap rentan bila debug aktif, dependency usang, authorization salah, input tidak divalidasi, output tidak di-escape, secret bocor, atau deployment tidak aman.

Apa yang harus dilakukan jika hasil Google menjadi judol tetapi website terlihat aman?

Periksa Search Console, URL Inspection, source dan rendered HTML, database, template, plugin/theme, sitemap, cache, cron, user, log, dan output kondisional. Cari persistence dan akar kompromi, bukan hanya mengganti title atau description yang terlihat.

Apa tindakan jika ada owner Search Console yang tidak dikenal?

Dokumentasikan kejadian, hapus aksesnya, lalu temukan dan hapus seluruh token verifikasi pada HTML, meta, DNS, Analytics, Tag Manager, atau metode lain. Amankan akun dan audit aset terkait agar owner tidak dapat memverifikasi ulang.

Bagaimana mencegah fitur search menghasilkan halaman spam terindeks?

Validasi dan escape query, batasi biaya serta frekuensi, berikan noindex pada halaman hasil search, keluarkan dari sitemap dan internal link, gunakan status 404/410 untuk URL invalid, serta monitor lonjakan query dan URL off-topic.

Referensi yang digunakan

  1. McDonald, Malcolm. Web Security for Developers: Real Threats, Practical Defense. No Starch Press, 2020. ISBN 9781593279943.
  2. Hoffman, Andrew. Web Application Security. Second Edition. O’Reilly Media, 2024. ISBN 9781098143923.
  3. Janca, Tanya. Alice and Bob Learn Secure Coding. Wiley, 2025. Print ISBN 9781394171705.
  4. Johnsson, Dan Bergh, Daniel Deogun, dan Daniel Sawano. Secure by Design. Manning, 2019. ISBN 9781617294358.
  5. Stuttard, Dafydd, dan Marcus Pinto. The Web Application Hacker’s Handbook: Finding and Exploiting Security Flaws. Second Edition. Wiley, 2011.
  6. OWASP. OWASP Top Ten 2025.
  7. OWASP. Test Application Platform Configuration.
  8. OWASP. HTTP Security Response Headers Cheat Sheet.
  9. OWASP. Transport Layer Security Cheat Sheet.
  10. OWASP. File Upload Cheat Sheet.
  11. OWASP. Authentication Cheat Sheet.
  12. OWASP. Logging Cheat Sheet.
  13. WordPress Developer Resources. Hardening WordPress.
  14. WordPress Developer Resources. Brute Force Attacks.
  15. Cloudflare. Web Application Firewall.
  16. Cloudflare. Managed Rules.
  17. Cloudflare. Custom Rules.
  18. Cloudflare. Rate Limiting Rules.
  19. Cloudflare. DDoS Protection.
  20. Cloudflare. Full (strict) SSL/TLS Encryption.
  21. Cloudflare. Allow Cloudflare IP Addresses and Protect the Origin.
  22. Laravel. CSRF Protection.
  23. Laravel. Rate Limiting.
  24. CodeIgniter. Security Guidelines.
  25. Google Search Central. Spam Policies for Google Web Search.
  26. Google Search Central. Prevent portions of your site from being abused by spam.
  27. Google Search Central. Block Search Indexing with noindex.
  28. Google Search Central. The site: search operator.
  29. Google Search Console Help. Managing owners, users, and permissions.
  30. Google Search Console Help. I do not recognize this owner.

Mulai dari Bukti, Bukan Rasa Aman

Pilih satu website. Inventaris aset dan owner-nya, tutup jalur takeover paling kritis, uji backup, review Search Console, lalu buktikan bahwa firewall, origin, CMS/framework, dan monitoring benar-benar bekerja. Keamanan menjadi lebih matang ketika konfigurasi dapat diuji, insiden dapat dideteksi, dan pemulihan dapat dilakukan tanpa menebak.

Informasi perusahaan dan kanal kontak PT Mitra Solusindo Pratama tersedia di website MSP.

Catatan editorial: Course ini adalah materi edukasi defensif dan bukan jaminan bahwa suatu website bebas serangan. Konfigurasi aktual dipengaruhi arsitektur, provider, versi software, data, kewajiban hukum, dan toleransi risiko. Terapkan hanya pada sistem yang Anda miliki atau yang memberi izin, gunakan change management, staging, backup, rollback, serta review tenaga yang kompeten. Nama menu, kuota, dan ketersediaan fitur vendor dapat berubah setelah course diterbitkan.

Kutip Artikel Ini:

Memuat format sitasi...
PT Mitra Solusindo Pratama OpenCourseWare © 2026 by Hilfan Soeltansyah is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 InternationalCreative Commons Attribution 4.0 International license. Attribution-NonCommercial-ShareAlike 4.0 InternationalAttribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.NonCommercial — You may not use the material for commercial purposes.ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original.
Location: Jakarta, Indonesia

Tidak ada komentar

Posting Komentar

Silakan ajukan pertanyaan, kritik, maupun saran.

PT MSP Bandung

The page you were looking for, could not be found. You may have typed the address incorrectly or you may have used an outdated link.

Go to Homepage