Cara Mengamankan Website WordPress dari Serangan Siber: Panduan Lengkap

cara memperkuat security website wordpress

Website berbasis WordPress sering menjadi target serangan hacker, bot spam, dan berbagai ancaman siber lainnya. Jika keamanan tidak diperkuat, website Anda bisa diretas, disusupi malware, atau mengalami pencurian data. Artikel ini akan membahas cara mengamankan website WordPress hingga “semut pun tidak bisa lolos,” tanpa membatasi akses berdasarkan negara sehingga tidak mengganggu kecepatan website dan SEO.

🔥 Key Takeaways

✅ Memanfaatkan Web Application Firewall (WAF) untuk menyaring akses ke website.
✅ Menggunakan custom rules di Cloudflare agar hanya pengguna asli yang bisa mengakses website.
✅ Melindungi file penting seperti wp-config.php, xmlrpc.php, dan lainnya dari eksploitasi.
✅ Menyembunyikan dan mengamankan login page dari bot jahat.
✅ Menambahkan security header untuk menghalau serangan dari sisi browser.
✅ Membatasi jumlah percobaan login agar brute-force attack tidak efektif.

1. Menggunakan Web Application Firewall (WAF) di Cloudflare

Langkah pertama untuk mengamankan website WordPress adalah dengan mengaktifkan Web Application Firewall (WAF) dari Cloudflare. Fitur ini dapat menyaring lalu lintas yang masuk dan hanya mengizinkan pengunjung asli.

🛠 Langkah-langkahnya:
1️⃣ Masuk ke Cloudflare Dashboard > Security > WAF > Tools
2️⃣ Tambahkan IP Hosting Anda
3️⃣ Action: Pilih “Allow”
4️⃣ Zone: Pilih “This Website”
5️⃣ Notes: Bisa diisi sesuai keinginan

Ini akan memastikan server hosting tetap dapat diakses dengan aman tanpa mengizinkan lalu lintas bot yang berbahaya.

2. Menambahkan Custom Rules untuk Memblokir Bot dan Akses Tidak Sah

Cloudflare memungkinkan pembuatan Custom Rules untuk mengontrol siapa yang bisa mengakses website.

🔹 Rules 1: Izinkan Semua Pengguna Manusia & Blokir Bot Spam

Blokir semua bot berbahaya kecuali yang diizinkan oleh Cloudflare (Googlebot, Bingbot, dll).

bash

Copy

(http.host ne “www.domain.com”

and not cf.client.bot

and not cf.verified_bot_category in {“Search Engine Crawler” “Search Engine Optimization” “Monitoring & Analytics” “Advertising & Marketing” “Page Preview” “Security” “Accessibility” “Webhooks” “Aggregator”})

Action: Block 🚫

🔹 Rules 2: Lindungi File Penting dari Peretasan

Beberapa file WordPress rentan terhadap eksploitasi, seperti wp-config.php, xmlrpc.php, readme.html, dan lainnya.

bash

Copy

(http.request.uri.path contains “/xmlrpc.php”)

or (http.request.uri.path contains “/readme.html”)

or (http.request.uri.path contains “/license.txt”)

or (http.request.uri.path contains “/wp-config.php”)

or (http.request.uri.path contains “/error_log”)

or (http.request.uri.path contains “/debug.log”)

Action: Block 🚫

Dengan aturan ini, file-file tersebut tidak dapat diakses secara langsung oleh hacker.

🔹 Rules 3: Blokir Hotlinking dari Situs Lain

Agar konten dan gambar tidak dicuri oleh website lain, tambahkan aturan hotlink protection.

bash

Copy

(http.request.uri.path wildcard r”/wp-content/*”

and not http.referer contains “www.domain.com”

and not http.referer contains “domain.com”

and not cf.client.bot)

or (http.request.uri.path wildcard r”/wp-includes/*”

and not http.referer contains “www.domain.com”

and not http.referer contains “domain.com”

and not cf.client.bot)

Action: Block 🚫

🔍 Hasilnya?

  • Gambar dan file statis Anda tidak bisa dicuri oleh website lain
  • Bandwidth hosting tidak terbuang sia-sia

🔹 Rules 4: Lindungi Login dan Komentar dari Spam & Brute-Force Attack

Banyak hacker menggunakan brute-force attack untuk membobol WordPress login page. Kita bisa menambahkan proteksi ekstra di sini.

bash

Copy

(http.request.uri contains “/wp-comments-post.php”

and http.request.method eq “POST”

and not cf.client.bot)

or (http.request.uri.path contains “/wp-login.php”

and not http.referer contains “www.domain.com”

and not http.referer contains “domain.com”)

or (http.request.uri.path contains “/wp-admin”

and not http.referer contains “www.domain.com”

and not http.referer contains “domain.com”

and not cf.client.bot)

or (http.request.uri.path contains “/wp-json”

and not http.referer contains “www.domain.com”

and not http.referer contains “domain.com”)

Action: Manage Challenge 🛡️

Hasilnya:
Mencegah bot menyerang halaman login dan wp-admin
Mengurangi spam komentar secara drastis

3. Menambahkan Security Headers untuk Mencegah Serangan XSS & Clickjacking

Security Headers akan menambah lapisan perlindungan dengan membatasi cara browser berinteraksi dengan website Anda.

🛠 Cara menambah Security Headers di Cloudflare:
1️⃣ Masuk ke Rules > Overview > Request Header Transform Rules > Modify Response Header
2️⃣ Buat aturan baru dengan Hostname Contains “domain.com”
3️⃣ Tambahkan Header berikut dengan static values:

HeaderValue
Content-Security-Policyupgrade-insecure-requests
Referrer-Policystrict-origin-when-cross-origin
Strict-Transport-Securitymax-age=31536000; includeSubDomains; preload
X-Content-Type-Optionsnosniff
X-Frame-OptionsSAMEORIGIN
X-XSS-Protection1; mode=block

💡 Manfaatnya:
✔️ Menghentikan serangan XSS (Cross-Site Scripting)
✔️ Melindungi dari Clickjacking dan serangan dari iframe asing

4. Membatasi Percobaan Login Maksimal 2 Kali

Jika seseorang mencoba login berkali-kali dengan password yang salah, WordPress akan otomatis mengunci mereka.

💾 Tambahkan kode ini di file functions.php:

php

Copy

function check_attempted_login( $user, $username, $password ) {

if ( get_transient( ‘attempted_login’ ) ) {

$datas = get_transient( ‘attempted_login’ );

if ( $datas[‘tried’] >= 2 ) {

return new WP_Error( ‘too_many_tried’, __( ‘ERROR: Terlalu banyak percobaan login, coba lagi nanti.’ ) );

}

}

return $user;

}

add_filter( ‘authenticate’, ‘check_attempted_login’, 30, 3 );

Manfaatnya:
🔒 Mencegah brute-force attack dari bot otomatis
🛑 Mengunci pengguna yang mencoba login berkali-kali

FAQs: Pertanyaan Seputar Keamanan WordPress

Apakah ini akan mempengaruhi SEO website?
✅ Tidak. Rules ini hanya memblokir bot jahat, bukan crawler mesin pencari seperti Googlebot.

Apakah perlu plugin tambahan?
✅ Tidak perlu. Semua proteksi bisa dilakukan langsung di Cloudflare dan functions.php.

Apakah cara ini bekerja di shared hosting?
✅ Ya! Bahkan lebih efektif karena shared hosting biasanya memiliki proteksi tambahan dari CloudLinux.

-
people visited this page
-
spent on this page
0
people liked this page
Share this page on
Share the Post:

Related Posts

Scroll to Top

Booking Form

Fill out the form below, and we will be in touch shortly.
Book Room Hotel