Permasalahan WordPress security atau keamanan WordPress menjadi topik paling serius ketika Anda ingin mengelola bisnis online, blog, atau bahkan sekedar website hobi.
Tidak peduli Anda menggunakan plugin dan tema premium, WordPress selalu memiliki celah yang bisa disusupi oleh hacker ataupun cracker.
Apakah dengan begitu WordPress tidak aman? Tidak bisa dikatakan demikian. Dibandingkan dengan CMS lainnya, WordPress termasuk yang paling aman dari serangan peretasan.
Namun, walaupun WordPress dikenal sebagai Content Management System (CMS) yang paling aman, tidak dapat dipungkiri bahwa ia sering menjadi target cyber crime. Oleh karena itu, Anda harus tetap menerapkan langkah-langkah mengamankan website WordPress Anda.
Apa itu tindakan keamanan website WordPress? Sederhananya, mengamankan website adalah sebuah tindakan atau protokol perlindungan yang dilakukan oleh pengelola website terhadap semua data web dan server agar tidak tereksploitasi.
Tindakan mengamankan data website ini dapat meliputi beberapa jenis pengamanan:
- Malware: Adalah singkatan dari malicious software, yang mana pada umumnya berupa upaya untuk mencuri data sensitif, spam, akses ilegal, dan lain sebagainya.
- DDoS: Adalah Distributed Denial of Service yang bertujuan untuk membebani website agar sulit diakses atau bahkan tidak dapat diakses sama sekali.
- Blacklist: berkaitan dengan mesin pencarian, di mana website tidak dapat ditemukan di pencarian karena dihapus oleh sistem search engine.
- Defacement: Merupakan sebuah tindakan yang menyebabkan tampilan situs web berubah menjadi tampilan apapun yang diinginkan oleh peretas.
Apabila Anda tidak ingin website mengalami serangan peretasan di atas, maka penting untuk menerapkan langkah-langkah mengamankan website secara menyeluruh berikut.
Bagaimana Cara Cek Keamanan Website?
Mengapa harus melakukan cek keamanan website? Bukankah tugas ini sudah dilakukan oleh pihak penyedia layanan hosting?
Memang benar, semua provider menawarkan jaminan keamanan. Namun walaupun demikian, masih saja banyak berita tentang peretasan website. Hal ini menandakan bahwa setiap pengguna harus menerapkan strategi meningkatkan keamanan website pada setiap website yang dikelola.
Anda bisa memulainya dengan melakukan pengecekan keamanan secara rutin. Gunakan tools yang berfungsi untuk malware scanner seperti Malcare, SolidWP atau Sucuri Sitecheck.
Dengan melakukan site scanning, Anda akan tahu apakah website atau server yang Anda gunakan dalam kondisi aman atau tidak.
Selain itu, keuntungan lainnya adalah website Anda tidak akan masuk ke dalam blacklist layanan keamanan seperti, Google Safe Browsing, McAfee, Norton Safe Web, dan lain sebagainya.
Mengapa Keamanan WordPress Penting
Sampai saat tulisan ini dibuat, data statistik menunjukkan bahwa situs web yang dikembangkan menggunakan WordPress berjumlah 43.5% dari total website di seluruh dunia. Angka yang menakjubkan, bukan?
Namun, semakin tinggi pokok pohon, semakin kencang angin menerpa. Itulah yang terjadi pada WordPress. CMS ini menjadi incaran para peretas dari yang pemula hingga yang mahir.
Fakta ini bukan menjadikan Anda harus mencari CMS lain untuk menjalankan bisnis online. Sebaliknya, Anda disarankan untuk menggunakan WordPress. Alasannya adalah, basis pengguna yang sangat banyak yang bisa dijadikan tempat berdiskusi dan juga banyaknya plugins yang dapat memudahkan Anda dalam mengelola bisnis.
Statistik dan Tren Keamanan WordPress 2024
Data W3techs menunjukkan bahwa WordPress digunakan oleh 62,7% dari total pengguna CMS. Selanjutnya diikuti oleh Shopify (6,4%). Wix (4.0%), dan Squarespace (3.1%).
Wajar saja jika terjadi banyak serangan pada CMS terpopuler ini. WPScan memberikan angka statistik kerentanan WordPress secara keseluruhan berjumlah 53.000 lebih.
Di sisi lain, SolidWP memberikan data terbaru, Juni 2024, mengenai laporan kerentanan WordPress berjumlah 228. Jumlah ini bisa saja berubah mengikuti perkembangan plugins dan themes.
Secara lebih spesifik, Wordfence membuat laporan mengenai 5 jenis kerentanan yang paling sering terjadi selama tahun 2023 sebagai berikut:
No | Vulnerability Types | Total |
---|---|---|
1 | Cross-Site Scripting(XSS) | 1.963 |
2 | Cross-Site Request Forgery | 1.098 |
3 | Missing Authorization and Authorization | 885 |
4 | SQL Injection | 279 |
5 | Information Disclosure | 98 |
Apakah Anda menemukan kejanggalan pada website bisnis Anda? Mari bicarakan keluhan Anda kepada saya. Tidak ada biaya apapun selama sesi obrolan. Beritahu saya sepintas tentang masalah Anda di sini: Berdiskusi sekarang.
Langkah Awal Mengamankan Website WordPress
Tidak peduli apakah Anda mengelola website sekedar untuk hobi, blog, yayasan, institusi, atau bisnis. Langkah awal menguatkan keamanan website ini wajib Anda terapkan!
Tips yang akan saya bagikan pada poin ini cukup untuk website kecil seperti blog, landing page, atau portofolio pribadi. Sedangkan untuk website skala perusahaan atau bisnis yang lebih besar, langkah dasar ini bisa dijadikan awal untuk meningkatkan keamanan WordPress Anda ke level yang lebih lanjut.
1. Menggunakan Hosting yang Aman
Hosting menjadi faktor utama yang paling penting dalam luasnya cakupan keamanan website. Di sinilah semua data Anda akan disimpan.
Sebenarnya tidak ada aturan khusus bagi Anda untuk memilih hosting terbaik untuk website Anda. Hal yang harus dipertimbangkan adalah ketersediaan dana dan keahlian teknis untuk mengelolanya.
Apabila Anda tidak memiliki keahlian teknis dalam mengelola hosting, namun ingin keamanan WordPress Anda terjamin, maka pilihan yang paling tepat adalah WordPress hosting.
Saat ini sudah banyak provider hosting yang menyediakan layanan hosting WordPress terjangkau. Saya telah membuat daftar penyedia layanan hosting terbaik menurut nilai ulasan/review dan pengalaman saya pribadi di sini.
Mengapa memilih hosting WordPress? karena layanan ini dikelola khusus dan telah memenuhi sebagian besar dasar-dasar keamanan WordPress yang penting untuk website. Dengan begitu, Anda tidak perlu memusingkan masalah keamanan dasar.
Berbeda halnya jika Anda dapat melakukan konfigurasi keamanan secara mandiri. Anda bisa memilih layanan unmanaged atau tidak dikelola oleh penyedia layanan.
Jika pilihan Anda adalah memilih untuk mengelola server mandiri, saya menyarankan Anda untuk memulainya dengan menggunakan virtual private server (VPS).
Jika Anda menggunakan VPS, maka kontrol penuh pengelolaan server berada di tangan Anda. Selain itu, tidak seperti shared hosting, Anda akan memiliki ruang penyimpanan terpisah dari pengguna lainnya jika menggunakan VPS.
2. Mengaktifkan HTTPS/SSL
Apa itu HTTPS/SSL? Sederhananya, dengan menginstal sertifikat Secure Socket Layer (SSL) pada website, maka pengunjung akan menemukan simbol gembok dengan keterangan “Connection is secure” dan prefix domain Anda akan secara otomatis berisi “https://”.
Dalam istilah teknis, SSL adalah protokol keamanan yang digunakan untuk mengenkripsi data antara web server dan browser yang diakses oleh pengguna.
Pertanyaan selanjutnya: Mengapa SSL penting? Untuk mengetahui seberapa pentingnya SSL untuk website, saya akan menjelaskan setidaknya ada 6 fungsi SSL yang sangat berperan penting:
- Meningkatkan Keamanan Website: SSL mengenkripsi data sebelum dikirimkan dari server ke pengguna. Ini menjadikan informasi tersebut sulit diretas oleh orang lain selain yang mengunjungi situs web. Dengan begitu, website menjadi lebih aman dari peretasan.
- Sebagai Autentikasi: Masih berkaitan dengan poin sebelumnya. Di sini lebih diperjelas, bahwa pengiriman data yang sesuai antara server dan pengguna tidak akan sampai ke pihak yang salah. Ini akan mengurangi risiko kesalahan pengiriman data.
- Optimasi SEO: “Keamanan selalu menjadi prioritas utama.” Begitulah kira-kira pernyataan dari Google. Artinya, salah satu faktor yang paling penting untuk meningkatkan peringkat SEO website adalah menggunakan SSL.
- Meningkatkan Kepercayaan Pengunjung: Sebuah data dari Convertcart menyebutkan bahwa 19.35% pelanggan akan meninggalkan keranjang belanja toko online apabila website tidak memiliki SSL.
- Mengurangi Risiko Phishing: Salah satu cara mencegah serangan phishing adalah menggunakan SSL. Dengan adanya label tersebut, dapat memastikan bahwa pengunjung website memang sedang mengunjungi website yang sah.
- Syarat Utama Payment Card Industry (PCI): Keamanan data pengguna sangat penting dalam transaksi keuangan. Oleh karena itu semua PCI mewajibkan setiap website yang ingin menggunakan metode transaksi kartu kredit harus memiliki sertifikat SSL.
Dari poin-poin di atas dapat disimpulkan bahwa SSL sangat penting untuk situs web ukuran kecil seperti blog atau portofolio pribadi hingga website perusahaan.
3. Update Rutin WordPress, Tema, dan Plugin
Tim keamanan WordPress sangat sadar bahwa predikat sebagai CMS dengan jumlah pengguna paling banyak, menjadikan WordPress sebagai target empuk serangan hacker.
Untuk mencegah terjadinya serangan tersebut, mereka selalu memperbarui sistem keamanan WordPress dengan menambal celah-celah yang rentan pada inti WordPress atau core WordPress. Pembaruan ini juga bertujuan untuk meningkatkan stabilitas kinerja dan penambahan fitur-fitur baru.
Nah, masalahnya, walaupaun WordPress sudah mengambil langkah pencegahan, pengembang dari pihak ketiga – plugin dan theme developers – yang berkontribusi dalam ekosistem WordPress terkadang bisa saja menjadi celah pembobolan keamanan.
Anda bisa melihat data statistik yang dirilis oleh WPScan di atas. Hingga Agustus 2024, mereka mengumpulkan sedikitnya ada 106.000 lebih plugins yang memiliki celah kerentanan. Sedangkan pada kategori themes, terdapat hampir 28.000 yang terdeteksi.
Pengembang plugin dan tema WordPress tidak tinggal diam ketika mendapat laporan kerentanan sistem keamanan pada kode sumber mereka. Oleh karena itu, mereka selalu melakukan pembaruan.
Selain untuk meningkatkan keamanan plugin dan tema, pembaruan yang dilakukan juga bertujuan untuk pengembangan fitur, kompatibilitas, perbaikan desain, dan memperbaiki error atau bugs.
Sebagai pemilik website, Anda harus mengikuti perkembangan keamanan WordPress, plugins, dan themes agar dapat lebih waspada. Anda bisa mengikuti salah satu newsletter WordPress vulnerability untuk mendapatkan update secara rutin.
4. Menggunakan Password yang Kuat dan Otentikasi Dua Faktor (2FA)
Password dan otentikasi berlapis dapat menambah keamanan situs WordPress Anda dari percobaan peretasan. Keduanya memiliki keterkaitan dan tidak bisa diabaikan. Berikut adalah cara membuat password dan mengaktifkan sistem 2FA.
Cara Membuat Password yang Kuat
Password atau kata sandi ibarat sebuah kunci untuk masuk ke ruangan. Siapa saja yang memegang kunci akan memiliki akses ke ruangan tersebut.
Agar ruangan tersebut tetap aman dari penyusup, si pemilik ruangan harus menjaga kunci agar tidak jatuh ke tangan orang lain.
Begitu pula dengan kata sandi. Apabila kata sandi yang Anda gunakan pada website tidak kuat atau mudah ditebak, maka besar kemungkinan website Anda akan mudah dibobol oleh ke orang lain.
Apabila hal ini terjadi, semua data seperti, nama, email, kontak, data pelanggan, dan lain sebagainya, bisa saja dicuri. Oleh sebab itu, menggunakan kata sandi yang kuat wajib dilakukan oleh setiap pemilik situs web.
Apa saja sayarat membuat kata sandi yang kuat? Yang pertama harus dihindari adalah menggunakan satu jenis karakter dan bagian dari identitas Anda yang mudah ditebak.
Contoh kata sandi yang menggunakan satu jenis karakter adalah “123456” atau “qwerty”. Kata sandi seperti ini akan mudah ditebak oleh orang lain.
Oleh karena itu, pastikan Anda menggunakan kombinasi angka, huruf, dan karatker khusus secara acak minimal 20 karakter. Kombinasi karakter ini akan susah dibobol oleh hacker.
Muncul pertanyaan, “bagaimana jika saya lupa password yang saya gunakan?”. Mudah saja, Anda dapat menggunakan tools password manager seperti Bitwarden, LastPass, atau lainnya, agar dapat disimpan dengan aman.
Semua alat pengelola kata sandi pasti memiliki fitur password generator. Anda bisa manfaatkannya untuk membuat kata sandi yang unik untuk setiap akun Anda.
Mengaktifkan Sistem 2 Factor Authentication (2FA)
Jika bukan Anda, terkadang karyawan Anda lalai dalam mengamankan akun mereka. Kelalaian yang sering terjadi adalah menggunakan kata sandi yang lemah.
Untuk memperkuat keamanan kata sandi, Anda bisa menambahkan sistem keamanan berlapis yang biasa dikenal sebagai otentikasi 2 langkah (2FA). Cara mudah mengaktifkan 2FA pada WordPress adalah menggunakan plugin keamanan seperti SolidWP.
Silakan masuk ke menu Settings > Features > Two-Factor. Di sini Anda akan menemukan pilihan dropdown “Authentication methods available to users”. Silakan pilih “Select methods manually” apabila Anda ingin menentukan metode 2FA. Atau biarkan default untuk menggunakan semua metode.
SolidWP akan secara otomatis mengaktifkan metode email, mobile app, dan backup authentication codes, jika dibiarkan default. Selain itu, ada pilihan “Setup Flow” dan “Protection”. Saya menyarankan Anda untuk mengaktifkan semua fitur yang ada di sini.
Selain 2FA, Anda dapat mengaktifkan fitur Passwordless login yang memungkinkan pengguna log in ke dashboard menggunakan URL khusus atau kode OTP yang dikirimkan ke email.
Silakan aktifkan salah satu fitur atau gunakan keduanya untuk memberikan pilihan pada pengguna yang ingin mengakses akun mereka.
Keamanan Akses Login
Poin sebelumnya bisa dikategorikan sebagai keamaman akses login. Namun dengan beberapa pertimbangan, saya tidak memasukkannya pada pokok pembahasan ini.
Di sini kita lebih fokus pada pengaturan pada level yang lebih lanjut seperti, pembatasan percobaan login, mengganti URL login, dan menggunakan sistem captcha.
1. Membatasi Percobaan Login
Secara dafault, WordPress menggunakan URL yang sama untuk halaman login, yaitu https://inidomainanda.com/wp-admin
atau bisa juga diakses melalui https://inidomainanda.com/wp-login.php
.
Apa yang salah dengan URL halaman login ini? Tidak ada. Tentunya tim keamanan WordPress sudah mengantisipasi kemungkinan-kemungkinan terburuk. Lebih lanjut akan saya bahas pada poin berikutnya.
Namun, setidaknya terdapat 4 alasan mengapa harus mengganti halaman login WordPress. Yang pertama dan paling berbahaya adalah serangan brute force, yang mana si penyerang mencoba login berkali-kali hingga menemukan kata sandi yang benar.
Hal ini berkaitan dengan kewajiban menggunakan kata sandi yang kuat. Yang kedua adalah kemungkinan akun Anda terkunci (lockdown) apabila website Anda berhasil diretas.
Kemudian alasan ketiga dan keempat masih saling berkaitan. Semakin sering percobaan login dilakukan, maka akan semakin sering permintaan dikirim ke server. Akibatnya, penggunaan sumber daya akan semakin banyak.
Dampak terburuknya adalah website Anda akan mengalami crash yang berdampak pada SEO. Inilah poin keempat, yaitu pengaruh negatif terhadap SEO. Tujuan utama Anda mengoptimalkan SEO website tentu saja untuk meningkatkan trafik organik.
Apabila website Anda terus-terusan terkena brute force, maka mesin pencarian akan menganggap website Anda tidak aman. Pada akhirnya, upaya dan strategi meningkatkan SEO yang Anda terapkan akan menjadi sia-sia.
2. Mengubah URL Login WordPress
Untuk mencegah agar website Anda tidak terus-terusan mengalami serangan pada halaman login, maka penting untuk mengganti URL halaman login Anda.
Pada WordPress repository plugins Anda bisa menemukan bermacam plugins yang dapat mengubah URL halaman login bawaan WordPress. Sebagai contoh adalah plugin WP Login Lockdown atau Limit Login Attempts Reloaded. Apabila ingin menggunakan konfigurasi yang lebih lanjut, Solid Security dapat menjadi pilihan yang tepat.
Anda dapat menetapkan halaman arahan untuk setiap percobaan mengakses halaman login Anda. Secara tidak langsung, menggunakan plugin ini juga dapat meningkatkan trafik kunjungan website Anda.
3. Menggunakan Captcha pada Halaman Login
Apakah dapat mengamankan WordPress dengan hanya mengaktifkan 2 factor authentication? Tidak ada jawaban pasti. Bahkan, untuk keamanan website secara menyeluruh pun tidak bisa dipastikan.
Dalam tahun 2024 ini saja kita telah beberapa kali mendengar berita mengenai pembobolan data, mulai dari data website pemerintahan, bank, apalagi pada website-website skala lebih kecil.
Kaspersky melansir hasil pengumpulan data mereka selama tahun 2023, untuk jenis phishing finansial telah terjadi sebanyak 97,465 serangan. Sedangkan yang terbesar terjadi pada jenis insiden lokal (16,4 juta). Dilanjutkan dengan 11,7 juta serangan RDP, dan 97,226 deteksi ransomware.
Yang dapat dilakukan adalah mengupayakan untuk meningkatkan sistem keamanan. Menggunakan Captcha adalah salah satu upaya yang bisa dilakukan.
Google dan Cloudflare adalah penyedia fitur ini yang paling banyak digunakan saat ini. Apabila Anda memilih Google, maka pilihannya adalah reCaptcha. Di sisi lain, Cloudflare memperkenalkan Turnstile.
Anda bisa mempelajari lebih lanjut mengenai fitur Turnstile pada dokumentasi developer Cloudflare dan mendalami bagaimana cara penggunaan reCaptcha pada dokumentasi Google.
Cara mudah menggunakan Captcha di WordPress adalah menggunakan bantuan plugin. Anda dapat memilih dari sekian banyak plugin keamanan WordPress yang menyediakan fitur ini.
Dari banyaknya pilihan tersebut, saya biasanya menggunakan Solid Security, Ninja Security, dan WP Login Lockdown. Namun, Anda bisa mengaktifkan plugin yang khusus seperti Simple Cloudflare Turnstile atau Advanced Google reCAPTCHA.
Keamanan Plugin dan Tema
Sudah dibahas sebelumnya mengenai pentingnya memperbarui plugin dan tema WordPress secara berkala. Di sini saya akan membahas lebih lanjut bagaimana cara memilih plugin dan tema yang aman, apa saja yang harus dilakukan terhadap plugin dan tema agar tetap aman, dan memastikan status keamanan plugin dan tema WordPress.
Perlu diingat bahwa, seberapa amannya plugin dan tema WordPress di sini tidak dapat menjamin 100%. Namun, setidaknya Anda bisa memilih yang paling kecil kemungkinan pembobolan celah kerentanannya.
1. Memilih Plugin dan Tema yang Aman
Sebenarnya di sini tidak ada jaminan keamanan. Kata yang lebih tepat adalah sistem keamanan yang lebih kuat. Nah, Anda harus jeli dalam memilih sesuai kebutuhan website Anda.
Sering disebutkan pepatah “ada harga, ada kualitas.” Ini berlaku juga untuk komponen-komponen WordPress. Namun, ada beberapa pengecualian seperti, WooCommerce, LiteSpeed Cache, Breeze, dan lain sebagainya.
Plugin-plugin yang saya sebutkan di atas bisa Anda gunakan secara gratis. Namun, perlu diingat bahwa menyediakan plugin secara gratis tersebut merupakan strategi marketing mereka.
Ketika Anda ingin menggunakan add-ons WooCommerce, pada saat inilah Anda harus merogoh kocek. Di samping itu, LSC memberikan penawarannya ketika Anda ingin menggunakan layanan CDN Quic Cloud dan LiteSpeed Web Server.
Sedangkan Breeze merupakan plugin milik Kinsta. Sama seperti SiteGround yang merilis plugin optimasi kecepatan WordPress mereka dengan nama Speed Optimizer.
Kedua plugin tersebut akan bekerja maksimal apabila Anda menggunakan layanan hosting mereka. Dari sinilah mereka mendapatkan keuntungan dari pengguna.
Dengan demikian, kualitas ketiga plugin tersebut tidak perlu diragukan lagi, walaupun tersedia secara gratis.
Strategi penjualan lain yang diterapkan oleh developer plugin dan tema adalah menyediakan versi gratis dengan fitur-fitur terbatas. Ini mudah ditemukan di repositori WordPress.
Nah, perihal sistem keamanan plugin dan tema pada kategori-kategori di atas bisa dikatakan lebih tinggi. Anda bisa memilihnya untuk mencukupi kebutuhan fungsionalitas website Anda.
Sedangkan jenis plugin dan tema WordPress yang tidak aman atau memiliki tingkat keamanan yang lebih lemah adalah yang sepenuhnya gratis dan tidak menawarkan versi berbayar. Kategori ini bisa saja ditinggalkan oleh pengembangnya tanpa adanya beban moral.
Setelah ditinggalkan, maka lambat laun akan semakin terbuka celah-celah kerentanan yang bisa disusupi. Karenanya, pastikan pilihan Anda bukan salah satu dari kategori ini.
Kemudian, tipe plugin dan tema yang tidak aman adalah nulled. Maksudnya di sini adalah plugin atau tema premium yang kode programnya telah dimodifikasi agar tidak membutuhkan lisensi resmi untuk dapat dijalankan.
3. Menghapus Plugin atau Tema yang Tidak Digunakan
Plugin dan tema yang tidak digunakan dapat menjadi celah keamanan pada keseluruhan website Anda. Sebab itu, Anda sangat disarankan untuk segera menghapusnya dan membersihkan semua data-datanya pada database.
Cara membersihkan database WordPress memang rumit. Pertama-tama Anda harus tahu semua prefix yang digunakan oleh tema atau plugin. Kemudian, lakukan penghapusan dengan menyeleksi semua nama terkait.
Apabila Anda tidak mau repot melakukan penyeleksian database, Anda bisa menggunakan Advanced Database Cleaner agar lebih efisien dan mengurangi risiko kesalahan penghapusan.
4. Menggunakan Plugin Keamanan Khusus WordPress
Menggunakan WordPress security plugin untuk memastikan keamanan plugin dan tema terdengar sedikit membingungkan. Mari diperjelas.
Di sini, penggunaan plugin keamanan bertujuan untuk memastikan setiap file yang ada pada tema dan plugin yang Anda gunakan tidak memiliki celah kerentanan.
Bagaimana cara mengecek keamanan plugin dan tema menggunakan plugin security? Mudah saja, Anda hanya perlu memilih plugin keamanan yang memiliki fitur malware scanner.
Apakah melindungi website WordPress dari malware dan hacker cukup hanya dengan melakukan langkah-langkah meningkatkan keamanan WordPress ini?
Tentu saja jawabannya tidak!
Jangan lupakan bahwa WordPress memiliki basis penyimpanan data atau yang biasa disebut sebagai database. Anda juga harus meningkatkan keamanan database website agar tidak mudah terkena malware.
Mari kita bahas bagaimana langkah-langkah meningkatkan keamanan database WordPress.
Keamanan Database WordPress
Sebenarnya, yang paling penting dari semua aspek menguatkan keamanan website adalah mengamankan database. Sebab, database merupakan tempat penyimpanan semua data sensitif terkait admin, anggota, karyawan, pelanggan, produk, dan data-data lainnya.
Selain itu, database WordPress merupakan target utama serangan hacker. Oleh karenanya, menerapkan keamanan database WordPress harus menggunakan pendekatan yang komprehensif.
Di sini kita akan membahas apa saja langkah-langkah mengamankan database WordPress secara detail agar dapat memastikan website Anda aman dari serangan peretasan.
1. Mengganti Prefix Database WordPress
Tindakan pertama dari seluruh proses pengamanan database WordPress adalah mengganti prefix database. Sama seperti halaman login, WordPress juga memiliki prefix default untuk semua tabel database, yaitu ‘wp_
’.
Prefix atau awalan nama tabel ini merupakan salah satu titik kerentanan yang sering ditargetkan untuk kemudian dieksploitasi oleh peretas. Jenis serangan ini biasa dikenal sebagai injeksi SQL atau SQL injection.
Dengan mengubah table prefix, artinya Anda sudah menyulitkan peretas yang ingin menargetkan database website Anda. Bagaimana cara mengganti prefix database WordPress?
Berikut adalah langkah-langkah yang harus Anda lakukan ketika mengubah prefix database WordPress Anda:
- Lakukan backup pada database: Anda bisa menggunakan WPVivid atau UpdraftPlus untuk melakukan backup atau langsung melakukan backup melalui phpMyAdmin.
- Ganti melalui
wp-config.php
: Masuk ke file manager WordPress Anda menggunakan FTP client dan cari filewp-config.php
yang biasanya ada pada bagian luar folder WordPress atau folder public_html. Cari baris$table_prefix = 'wp_';
kemudian ganti dengan prefix lainnya. Misalnya$table_prefix = ‘prefsaya_’;
lalu simpan / save. - Ujicoba website: Pastikan semua fungsi pada website berjalan normal. Anda bisa mencobanya pada beberapa halaman yang penting seperti halaman login dan editor.
- Lakukan pemantauan: Walaupun telah menguji website dan hasilnyaberjalan normal, Anda tetap harus selalu memantau website Anda untuk mencegah terjadinya kesalahan.
2. Menerapkan Otentikasi dan Kata Sandi Database yang Kuat
Selain akses pada dashboard WordPress, akses ke database juga harus menggunakan kata sandi yang kuat. Jika dibobol, maka semua privilage yang telah Anda terapkan pada website akan sia-sia.
Database website dapat diibaratkan sebagai lemari harta karun Anda. Jika sebelumnya website merupakan sebuah ruangan, maka database memiliki nilai yang lebih tinggi.
Karenanya, Anda harus memastikan kunci ruang harta karun tersebut tidak jatuh ke tangan yang salah.
Bagaimana cara mengganti kata sandi database WordPress?
- Buat kata sandi yang kuat: Gunakan alat pengelola kata sandi seperti BitWarden, LastPass, atau sejenisnya, untuk menghasilkan sebuah kombinasi kata sandi yang kuat dan acak.
- Ubah baris kode di wp-config.php: Akses file wp-config.php menggunakan cara yang sama dengan sebelumnya. Lalu, temukan baris
define('DB_PASSWORD', 'kata_sandi_anda');
. Lalu ubah dengan kata sandi yang telah Anda buat menggunakan password manager. - Lakukan ujicoba: Setelah menyimpan kata sandi yang baru, Anda harus memastikan koneksi website ke database Anda berjalan dengan normal tanpa adanya error.
3. Meningkatkan Keamanan dengan Konfigurasi Tingkat Lanjut pada file wp-config.php
File wp-config.php bisa dikiaskan sebagai jantung website WordPress. Di sinilah semua data penting untuk mengakses website dan database Anda disimpan.
Dengan begitu, Anda harus mencurahkan perhatian khusus pada file ini untuk mencegah adanya tindakan akses yang tidak dikehendaki.
Bagaimana cara mengamankan file wp-config.php? Berikut adalah tips lengkap melindungi file wp-config.php:
- Memindahkan file: Trik ini arang dilakukan oleh kebanyakan pemilik dan pengelola WordPress. Setiap website yang menggunakan WordPress, dapat memindahkan file wp-config.php ke satu tingkat di atas posisi bawaannya. Artinya, letak file wp-config.php yang awalnya di dalam folder /public_html, bisa Anda pindahkan ke
/root/home/username_anda/
. - Perbarui konfigurasi file
.htaccess
: Pada file .htaccess, Anda bisa menambahkan beberapa baris kode untuk membatasi akses ke file wp-config.php. Anda hanya perlu menambahkan kode berikut:
<Files wp-config.php>
order allow,deny
deny from all
</Files>
- Database credentials encryption: Pada intinya, Anda harus memiliki akses ke panel server. Sebab, metode ini mengamankan WordPress dari sisi server. Anda bisa mengenkripsi data yang tersimpan pada wp-config.php menggunakan alat seperti GNU Privacy Guard (GPG). Trik lainnya adalah membuat sebuah environment variables, yang memungkinkan Anda menyimpan file di tingkat server. Setelah selesai, Anda harus memberitahu WordPress untuk mengambil data dengan menggunakan perintah
define('DB_PASSWORD', getenv('DB_PASSWORD'));
. - Menonaktifkan error log: Bukan hanya data akses website dan database saja yang disimpan pada file wp-config.php. Error log atau catatan kesalahan juga diatur di file tersebut. Anda harus memastikan agar error log tidak dapat dilihat pada sisi front-end website Anda. Langkah ini bertujuan agar penyerang tidak dapat melihat data sensitif Anda. Silakan tambahkan baris kode berikut:
ini_set('display_errors', 0);
ini_set('display_startup_errors', 0);
define('WP_DEBUG', false);
define('WP_DEBUG_DISPLAY', false);
4. Tetapkan Jadwal Rutin untuk Backup Database
Langkah ini perlu dilakukan untuk mengantisipasi risiko kehilangan atau pencurian data, tindakan penghapusan yang tidak disengaja, corrupt, dan kesalahan lainnya. Setelah Anda melakukan backup database, pastikan juga file backup tersebut aman.
Anda bisa memilih cara aman, mudah, dan instan melakukan backup database dengan menggunakan bantuan plugins seperti WPVivid, All-in-One WP Migration, WP Time Capsule, UpdraftPlus, dan lainnya.
Anda juga bisa mencadangkan database langsung melalui phpMyAdmin. Namun yang harus Anda ketahui adalah bagaimana praktik terbaik melakukan pencadangan database WordPress.
- Backup otomatis: Beberapa plugin yang saya sebutkan di atas memiliki fitur untuk melakukan backup otomatis. Silakan manfaatkan fitur tersebut agar pekerjaan Anda lebih mudah.
- Multi lokasi penyimpanan: Pastikan Anda menyimpan hasil backup tersebut pada beberapa lokasi penyimpanan yang berbeda seperti, Google Drive, Dropbox, dan tempat penyimpanan lainnya. Cara ini juga dikenal sebagai offsite backup.
- Enkripsi file backup: Gunakan alat seperti GPG yang memiliki kemampuan untuk mengenkripsi file SQL untuk menambah lapisan keamanan database Anda.
- Pengujian: Maksudnya adalah uji secara berkala file backup tersebut pada website yang terpisah. Anda bisa menggunakan staging site untuk sekedar menguji validitas file tersebut.
5. Mengaudit dan Memantau
Langkah ini dilakukan untuk memastikan database Anda tetap aman dari aktivitas mencurigakan dan berbahaya. Gunakan plugin seperti Solid Security, Sucuri, Malcare, dan sebagainya.
Hal lain yang harus Anda lakukan adalah menjalankan MySQL atau MariaDB logging pada panel server untuk merekam semua aktivitas terkait database.
Setelah selesai mengamankan WordPress pada sisi website dan database, selanjutnya yang harus Anda lakukan adalah menerapkan konfigurasi keamanan pada sisi web server.
Tidak peduli apakah Anda menggunakan shared hosting, WordPress hosting, VPS, VDS, Dedicated, atau lainnya, Anda tetap harus memastikan keamanan website WordPress Anda sudah dilakukan dengan benar dan maksimal.
Keamanan File dan Direktori WordPress
Sisi lain dari website WordPress yang harus Anda amankan adalah file dan direktori website. Beberapa langkah keamanan ini telah dibahas pada pembahasan sebelumnya.
Salah satu yang telah dibahas sebelumnya adalah mengamankan file wp-config.php. DI sini saya juga akan membahas poin ini, namun dengan beberapa penambahan.
Fokus pembahasan kali ini adalah pada langkah mengamankan file dan direktori Wordpress lebih lanjut.
Sebelum masuk ke poin-poin inti, saya akan menjelaskan secara ringkas mengenai apa itu file dan direktori WordPress.
Pengertian File dan Direktori WordPress
File dan direktori WordPress merupakan 2 komponen penting yang terpisah. Untuk itu, saya akan menjelaskannya secara terpisah
- File WordPress: Merupakan kumpulan data atau kode/skrip yang mengatur semua konfigurasi yang dibutuhkan untuk dapat menjalankan WordPress. Terdapat 4 file penting yang menjadi inti dari WordPress:
- wp-config.php: Berisi informasi konfigurasi utama dan menyimpan detail koneksi ke database dan pengaturan-pengaturan lainnya.
- .htaccess: Berisi konfigurasi server dan mengontrol pengaturan permalink dan keamanan website. File ini dapat dimodifikasi untuk meningkatkan performa dan keamanan WordPress.
- index.php: Inisiator proses eksekusi WordPress atau dapat juga dikatakan sebagai titik utama untuk masuk ke WordPress. File ini memuat beberapa file WordPress core lainnya.
- functions.php: File ini sangat berguna untuk proses pengembangan. Ia merupakan bagian dari tema WordPress yang berisi fungsi-fungsi serta hooks yang dapat dimanfaatkan untuk memperluas fungsionalitas WordPress.
- Direktori WordPress: Masih dalam 1 jalur (path) dengan file, namun perbedaannya adalah direktori folder-folder yang menyimpan file-file WordPress sehingga lebih terorganisir. Beberapa direktori WordPress adalah sebagai berikut:
- wp-admin: Merupakan kumpulan file yang diperlukan untuk tampilan dashboard admin WordPress.
- wp-content: Merupakan direktori penyimpanan yang mengatur semua konten yang ditambahkan seperti, media, plugin, dan tema. Fungsi utamanya adalah untuk kostumisasi WordPress.
- wp-includes: Direktori ini sangat krusial, sehingga tidak disarankan bagi pengguna awam untuk memodifikasinya. Di sini berisi file-file inti WordPress yang menyimpan class, library, dan functions yang dibutuhkan untuk menjalankan WordPress.
- themes: merupakan subdirektori wp-content yang menyimpan semua tema yang terinstal.
- plugins: masih dalam subdirektori yang sama dengan themes. subdirektori ini menyimpan semua plugin yang terinstal.
- uploads: Merupakan subdirektori yang menyimpan file media seperti gambar, dokumen, video, dan lainnya, yang diunggah.
Demikianlah secara singkat pengertian file dan direktori WordPress. Selanjutnya mari kita bahas tentang bagaimana cara mengatur izin file dan direktori (file and directory permissions)yang benar.
Mengatur Izin File dan Direktori dengan Benar
Dari penjelasan tentang file dan direktori, Anda akan mendapatkan gambaran betapa pentingnya menjaga komponen tersebut. Cara untuk mengamankan file dan direktori yang pertama adalah mengatur izin akses (permissions) agar tidak bisa dimodifikasi oleh pengguna lain yang tidak dikehendaki.
Pada gambar di atas dapat dilihat terdapat 3 jenis izin akses yakni, Read, Write, Execute. Ketiganya memiliki fungsi yang berbeda.
- Read (r): Izin untuk dapat membaca isi file atau melihat isi direktori.
- Write (w): Izin untuk memodifikasi atau menghapus file dan direktori.
- Execute (x): Izin untuk menjalankan file atau mengakses direktori.
WordPress membuat izin akses secara standar untuk setiap website yang baru diinstal yakni:
- Direktori: 755 (rwxr-xr-x): Memberikan izin kepada pemilik untuk membaca/menulis/mengeksekusi. Sementara itu, grup dan publik tidak dapat menulis.
- File: 644 (rw-r–r–): Memberikan izin kepada pemilik untuk membaca/menulis. Sementara itu, grup dan publik hanya dapat membaca.
- wp-config.php: 600 (rw——-): Hanya memberikan izin kepada pemilik untuk membaca/menulis.
Bagaimana cara mengatur izin akses file dan direktori WordPress? Yang pasti Anda tidak membutuhkan kemampuan teknis pemrograman jika menggunakan panel seperti cPanel, aaPanel, hPanel, atau Serveravatar untuk VPS.
- Melalui FTP
- Hubungkan server melalui FTP client seperti FileZilla atau XFTP Netsarang.
- Cari file atau folder yang ingin diubah.
- Klik kanan dan pilih “file permissions”.
- Centang izin sesuai yang diinginkan.
- Melalui Server Panel
- Buka file manager pada panel.
- Pilih file atau folder.
- Pilih menu “Change Permissions”.
- Centang izin yang diinginkan.
- Melalui SSH
- Gunakan perintah sesuai dengan yang diinginkan pada terminal. Contohnya:
chmod 644 file.php
chmod 755 folder
Beberapa pertimbangan dalam mengatur izin akses adalah sebagai berikut:
- Apabila terlalu membatasi, bisa berakibat pada tidak berjalannya fungsi WordPress secara normal.
- Akan terbuka celah keamanan apabila izin akses yang diberikan terlalu longgar seperti 777.
- Berikan izin yang cukup untuk web server.
- Perhatikan kepemilikkan file (ownership).
- Berikan izin seminimal mungkin.
Itulah penjelasan mengenai izin akses file dan direktori WordPress serta langkah-langkah yang harus dilakukan untuk memperkuat keamanan WordPress.
Menonaktifkan Eksekusi File PHP pada Direktori Penting
Setelah mengatur file & directory permissions, hal selanjutnya yang tidak kalah penting adalah memastikan file PHP pada direktori-direktori penting website Anda tidak dapat dieksekusi secara ilegal.
Mengapa tindakan ini penting? Pertanyaan singkat ini akan menghasilkan sedikitnya 8 alasan pentingnya menonaktifkan eksekusi file PHP pada WordPress.
- Mencegah eksekusi kode/skrip berbahaya: Dengan menonaktifkan eksekusi PHP, peretas (hacker) tidak dapat menjalankan kode PHP berbahaya yang mungkin berhasil diunggah ke direktori tersebut. Ini mencegah eksploitasi kerentanan upload file.
- Membatasi dampak serangan: Tindakan ini untuk mengantisipasi apabila peretas (hacker) berhasil mengunggah file berbahaya. Dengan begitu, file tersebut tidak akan dapat dieksekusi.
- Melindungi direktori sensitif: Salah satu direktori yang seringkali menjadi target serangan malware adalah wp-content/uploads. Dengan menerapkan cara ini otomatis akan meningkatkan keamanan secara signifikan.
- Mencegah backdoor: Peretas (hacker) sering mencoba memasang backdoor PHP di direktori WordPress. Dengan menonaktifkan eksekusi PHP, backdoor tersebut tidak akan berfungsi.
- Prinsip least privilege: Yakni menerapkan prinsip yang memberikan hak akses seminimal mungkin.
- Melindungi dari eksploitasi plugin dan/atau tema: Jika ada celah kerentanan di plugin atau tema, langkah ini dapat mencegah eksploitasi.
- Lapisan keamanan tambahan: Ini memberikan lapisan keamanan (security layer) ekstra, melengkapi langkah-langkah keamanan WordPress sebelumnya.
- Praktik keamanan yang direkomendasikan: Strategi keamanan ini merupakan sebuah praktik keamanan standar yang direkomendasikan oleh banyak ahli keamanan WordPress.
Bagaimana cara menonaktifkan eksekusi file PHP pada direktori WordPress? Tidak susah tentunya.
Anda hanya memerlukan akses ke file manager website Anda untuk dapat menerapkan langkah-langkah menonaktifkan eksekusi file PHP ini.
Selanjutnya, pilih direktori penting yang ingin dilindungi. Biasanya direktori ini adalah wp-content/uploads dan wp-includes.
Buatlah file .htaccess baru dan ketik kode berikut:
<Files *.php>
deny from all
</Files>
Setelah Anda menulis baris kode tersebut, kemudian upload ke direktori yang ingin dilindungi.
Bagaimana jika file .htaccess sudah ada pada target direktori? Mudah saja. Anda tinggal menambahkan kode di atas pada file tersebut.
Langkah terakhir adalah memastikan file dan skrip tersebut bekerja dengan sempurna. Caranya adalah dengan mengakses file PHP yang ada di direktori tersebut melalui browser.
Apabila berhasil, maka Anda akan mendapatkan pesan “403 Forbidden”.
Segera Tingkatkan Keamanan WordPress Anda Secara Menyeluruh
Demikianlah untuk sementara ini pembahasan lengkap mengenai cara meningkatkan keamanan WordPress untuk pemula hingga profesional yang dapat saya jabarkan.
Jangan tunggu website WordPress Anda terkena masalah keamanan untuk menerapkan langkah-langkah keamanan ini. Sebaiknya, lindungi website sebelum Anda meluncurkan bisnis ke pasar online yang selalu dinamis ini.
Apabila Anda membutuhkan bantuan, silakan hubungi saya pada halaman kontak untuk melanjutkan perbincangan secara online maupun offline/langsung jika memungkinkan.