WordPress adalah salah satu content management system (CMS) yang paling
populer di dunia. Saat ini 4,5% website di seluruh dunia berjalan diatas
mesin WordPress dan hingga saat ini WordPress telah di-install sebanyak
76,5 juta kali. Sayangnya, popularitas WordPress juga tidak lepas dari
kontra. Menurut sebuah laporan hack yang dirilis oleh Securi, sebuah
perusahaan spesialist dalam bidang website security, WordPress adalah
salah satu CMS yang paling banyak dibobol di dunia. Namun, sebenarnya
sangat mudah untuk mengamankan WordPress jika Anda mengikuti panduan
best practice terbaik dan mengimplementasikan beberapa trik yang
tersedia dalam tutorial ini.
Langkah 1 – Pastikan WordPress Anda Selalu Update ke Versi Terbaru
Ini adalah tips pertama dan yang paling utama. Jika Anda ingin memiliki website yang bersih dan bebas malware, Anda wajib menjaga agar WordPress Anda selalu ter-update ke versi yang paling baru. Walaupun ini terdengar seperti nasehat yang sederhana, namun tahukah Anda ternyata hanya 22% website yang terinstall WordPress dengan versi terbaru.WordPress telah menerapkan sistem update otomatis mulai versi 3.7, meskipun begitu, update ini hanya bekerja untuk update keamanan yang sifatnya kecil (minor) saja. Sehingga, update inti total harus dilakukan secara manual.
Langkah 2 – Gunakan Detail Login yang Jarang Digunakan
Apakah Anda termasuk yang sering menggunakan admin sebagai username akun administrator? Jika ya, berarti Anda telah memberikan peluang agar hacker lebih mudah meretas website Anda. Cara yang paling direkomendasikan adalah mengganti username akun admin menjadi yang lainnya (lihat panduang ini bila Anda belum terlalu yakin bagaimana cara melakukannya) atau buat sebuah akun Administrator baru dengan username yang berbeda dan hapus yang lain. Silakan ikuti langkah berikut ini bila Anda lebih senang dengan cara yang ke-2:
1. Masuk ke Dashboard WordPress Anda
2. Buka bagian Users pada menu dan klik menu Add New
3. Buat sebuah user baru dan berikan role Administrator untuk user tersebut.
4. Logout dan login kembali ke WordPress dengan username yang telah Anda buat
5. Masuk kembali ke menu Users dan hapus user Admin.
Ingat, password yang baik berperan sangat penting di sisi keamanan WordPress, karena akan sangat sulit untuk meretas password yang terdiri dari kombinasi angka, huruf besar dan huruf kecil serta karakter spesial. Tool seperti LastPass dan 1Password bisa membantu Anda dalam membuat dan menyimpan kombinasi password yang rumit. Selain itu, jika Anda hendak masuk ke dashboard WordPress padahal sedang terhubung ke koneksi yang tidak aman (misalnya, kafe, perpustakaan umum, dll), jangan lupa untuk aktifkan layanan VPN yang aman terlebih dulu agar informasi log in terlindungi.
Langkah 3 – Aktifkan 2 Step Authentication
Two-steps verification (verifikasi login 2 tahap) memberikan lapisan keamanan tambahan untuk halaman login Anda. Seperti namanya, fitur ini akan menambahkan tahap tambahan yang harus Anda lengkapi agar bisa login. Seperti yang mungkin sudah banyak digunakan untuk mengakses email, internet banking atau login akun lainnya yang mengandung informasi sensitif. Lalu, mengapa tidak coba juga agar Anda bisa mengamankan WordPress Anda?Meskipun cara ini terkesan cukup sulit, namun sebenarnya 2 step verification ini sangat mudah diterapkan pada blog WordPress. Hal yang Anda butuhkan hanyalah menginstall aplikasi tambahan 2 step verification dan konfigurasi app tersebut pada WordPress Anda. Anda bisa menemukan panduan lengkap bagaimana cara membuat 2 step verification di WordPress.
Langkah 4 – Nonaktifkan Laporan Error PHP
Laporan error PHP` akan sangat membantu bila Anda sedang membuat website dan memastikan semuanya berjalan lancar. Namun, menampilkan error ke semua orang tentu saja merupakan hal yang kurang tepat.Anda sebaiknya perbaiki hal ini sesegera mungkin. Jangan khawatir, Anda tidak harus menjadi programer hanya untuk mematikan fungsi laporan error PHP di WordPress. Banyak penyedia layanan hosting yang menyediakan opsi untuk mematikan laporan error dalam control panel mereka. Jika tidak ada, caranya sederhana. Anda cukup menambahkan beberapa baris code pada file wp-config.php. Anda bisa menggunakan FTP client atau fitur File Manager untuk mengedit file wp-config
error_reporting(0); @ini_set(‘display_errors’, 0);Ya, hanya itu! Sekarang laporan error pun sudah non-aktif.
Langkah 5 – Jangan gunakan theme WordPress bajakan
Ingat – “Hanya keju gratis yang ada di perangkap tikus”. Hal tersebut juga bisa berlaku di theme/plugin WordPress bajakan.Ada ribuan theme dan plugin bajakan di Internet. Pengguna dapat mendownloadnya dari berbagai sumber seperti Warez/torrent secara gratis. Apa yang sering tidak mereka ketahui adalah bahwa kebanyakan plugin & theme tersebut sudah diinfeksi malware atau link SEO black hat.
Sarannya, jangan lagi gunakan plugin dan theme bajakan. Bukan hanya karena tidak etis namun juga akan membahayakan keamanan WordPress Anda. Jangan sampai akhirnya Anda harus membayar lebih mahal daripada developer hanya untuk membersihkan website Anda yang terinfeksi.
Langkah 6 – Lacak Malware di WordPress Anda.
Hacker biasanya menggunakan banyak celah di theme/plugin untuk menginfeksi WordPress dengan malware. Oleh karena itu, sangat penting untuk sering melakukan scanning terhadap blog Anda. Ada banyak plugin yang bisa Anda gunakan untuk pengamanan ini. WordFence adalah yang cukup terkenal. Plugin ini menawarakan opsi scan otomatis & manual beserta beberapa setting lain yang berbeda. Anda bahkan bisa mengembalikan file yang terinfeksi/telah dimodifikasi virus hanya dengan beberapa klik saja. Gratis dan open source. Dari fakta ini saja, Anda sudah seharusnya segera menginstall plugin ini sekarang.Plugin untuk mengamankan WordPress lainnya yang populer:
- BulletProof Security – tidak seperti WordFence, seperti yang sudah disebutkan sebelumnya. BulletProof tidak akan meng-scan file Anda, namun akan melindungi Anda dengan firewall, keamanan database, dll. Kerennya, plugin ini bisa langsung diinstall & dikonfigurasi hanya dengan beberapa klik saja.
- Sucuri Security – plugin ini akan melindungi Anda dari serangan DOS. Plugin ini akan menyimpan data blacklist, melakukan scan malware pada website dan akan mengatur kinerja firewall Anda. Jika plugin ini mendeteksi sesuatu yang mencurigakan, plugin akan mengirimkan Anda email pemberitahuan. Google, Norton, McAfee – Semua blacklist dari teknologi ini juga disertakan dalam plugin Sucuri Security.
Langkah 7 – Pindahkan Website WordPress ke web hosting yang lebih aman
Mungkin ini terdengar sedikit aneh, namun statistik menunjukkan bahwa lebih dari 40% website WordPress diretas hanya karena celah keamanan di akun hosting. Angka statistik ini setidaknya juga akan membuat Anda mempertimbangkan kembali pilihan web hosting Anda dan segera memindahkan WordPress Anda ke akun hosting yang lebih aman. Beberapa hal yang harus Anda pertimbangkan saat memilih layanan hosting yang baru, antara lain:- Jika Anda memilih shared hosting, pastikan akun Anda terpisah dari pengguna lain dan tidak ada resiko 1 website bisa menginfeksi website lainnya dalam server.
- Memiliki fitur backup
- Memiliki firewall di sisi server & fitur scanning virus
Langkah 8 – Lakukan backup sesering mungkin
Website-website besar pun tidak lepas dari serangan peretas (hack) setiap hari, meskipun pemiliknya telah menghabiskan dana yang tidak sedikit untuk memperkuat keamanan WordPress.
Jika Anda mengikuti seluruh panduan dan tips di artikel ini, Anda tidak boleh lupa melakukan backup website Anda secara berkala.
Ada cukup banyak cara untuk melakukan backup. Contohnya, Anda bisa download secara manual file WordPress dan meng-export database. Anda juga bisa mengunakan fitur backup yang telah disediakan hosting Anda. Cara lain adalah menggunakan plugin untuk mengamankan WordPress khusus backup, seperti:
Bahkan, Anda juga bisa membuat backup WordPress otomatis yang tersimpan langsung ke Dropbox.
Langkah 9 – Matikan Fitur File Editing
Seperti yang Anda ketahui, WordPress memiliki file editor bawaan yang akan memungkinkan Anda mengedit file PHP langsung. Walaupun fitur ini sangat berguna, namun sebenarnya menyimpan potensi bahaya juga. Jika penyerang mendapatkan akses ke halaman administrator Anda, hal pertama yang ia akan dicari adalah file editor. Sebagian pengguna WordPress lebih memilih untuk menonaktifkan fitur ini. Caranya cukup dengan mengedit file wp-config.php dan menambahkan baris kode berikut:define( 'DISALLOW_FILE_EDIT', true );Ya, hanya itu yang perlu Anda lakukan untuk mematikan fitur editing file di WordPress.
PENTING Jika anda ingin mengaktifkan kembali fitur ini, menggunakan FTP client atau penyedia hosting Anda File Manager dan menghapus kode ini dari file wp-config.php.
Langkah 10 – Hapus theme & plugin yang tidak digunakan
Bersihkan website WordPress Anda dengan menghapus plugin/theme yang tidak digunakan. Biasanya Hacker sering melakukan scanning plugin/theme yang tidak update/yang lama (bahkan untuk yang versi resmi dari WordPress), lalu kemudian menggunakannya untuk mendapatkan akses ke Dashboard Anda atau meng-upload file berbahaya ke server Anda. Dengan menghapus plugin dan theme yang sudah tidak Anda gunakan lagi, Anda telah menurunkan risiko yang mungkin terjadi dan membuat website Anda menjadi lebih aman.Langkah 11 – Gunakan .htaccess untuk Keamanan yang Lebih Baik
file .htaccess diperlukan agar link-link di WordPress bisa bekerja dengan benar, karena tanpa kumpulan aturan yang benar dalam file .htaccess, Anda muncul banyak pesan error 404 pada website Anda.Tidak banyak pengguna yang tahu bahwa .htaccess juga dapat digunakan untuk meningkatkan keamanan WordPress. Misalnya, dengan htaccess Anda dapat memblokir akses atau menonaktifkan eksekusi PHP pada folder tertentu. Bellow contoh menunjukkan bagaimana Anda dapat menggunakan .htaccess mengeras keamanan WordPress.
PENTING Sebelum Anda membuat perubahan apapun, membackup file .htaccess yang sebelumnya sangat direkomendasikan. Anda bisa menggunakan FTP client atau File Manager untuk melakukannya.Menghalangi akses ke halaman administrator
Code berikut akan membuat halaman administrator WordPress Anda hanya dapat diakses dari IP tertentu saja.
AuthUserFile /dev/null AuthGroupFile /dev/null AuthName "WordPress Admin Access Control" AuthType Basic <LIMIT GET> order deny,allow deny from all allow from xx.xx.xx.xxx allow from xx.xx.xx.xxx </LIMIT>Pada kode tersebut, Anda harus mengganti
xx.xx.xx.xxx
menjadi alamat IP Anda. Anda bisa menggunakan website ini
untuk memeriksa alamat IP Anda. Jika Anda menggunakan lebih dari 1
koneksi untuk mengatur WordPress Anda, pastikan Anda tidak lupa untuk
turut menyertakan alamat IP koneksi lainnya (jumlahnya bebas sesuai
dengan kebutuhan Anda). Kode ini tidak direkomendasikan bila Anda
menggunakan alamat IP dinamis.Menonaktifkan eksekusi PHP di folder tertentu
Peretas suka meng-upload script backdoor ke folder upload pada WordPress. Secara normal, folder ini biasanya digunakan untuk meng-upload file media saja. Oleh karena itu, folder ini tidak boleh berisi file PHP. Anda bisa dengan mudah menonaktifkan eksekusi PHP dengan cara membuat file .htaccess baru di direktori /wp-content/uploads dengan script berikut:
<Files *.php> deny from all </Files>Melindungi file wp-config
File wp-config berisi file inti dari setting WordPress dan detail database MySQL. Sehingga, ini merupakan file WordPress yang paling penting. Oleh karena itu, file ini sering menjadi target utama para hacker dalam melakukan serangan. Namun bagaimanapun, Anda bisa dengan mudah melindungi file ini dengan script rule (peraturan) di .htaccess sebagai berikut:
<files wp-config.php> order allow,deny deny from all </files>
Langkah 12 – Mengganti prefix database WordPress untuk mencegah SQL Injection
Dalam database WordPress tersimpan seluruh informasi penting yang dibutuhkan oleh website Anda untuk berjalan dengan baik. Hasilnya, ini sering menjadi sasaran empuk bagi hacker dan spammer yang menjalankan kode otomatis untuk melakukan SQL Injection. Saat instalasi WordPress, kebanyakan orang bahkan tidak terpikir untuk mengganti awalan wp_. Menuruh WordFence, 1 dari 5 kasus hacking WordPress terjadi karena SQL Injection. Sejak **wp_** dibuat menjadi setting prefix bawaan, hacker akan menjadikan ini sebagai target utama. Dalam langkah ini, kita akan mempelajari bagaimana caranya agar Anda bisa mengamankan website WordPres Anda dari serangan seperti itu.Mengganti prefix table WordPress saat ini
PENTING! Keselamatan adalah yang paling utama. Pastikan Anda melakukan backup database MySQL WordPress Anda terlebih dahulu sebelum melanjutkan langkah berikutnya.
Bagian 1 – Mengganti prefix di file wp-config.php
Gunakan FTP client atau File Manager untuk menemukan file wp-config.php Anda dan carilah nilai$table_prefix
.Anda juga boleh menambahkan angka, huruf atau garis bawah. Setelah itu, simpan perubahan Anda dan lanjutkan ke langkah berikutnya. Dalam tutorial ini, kita akan menggunakan
wp_1secure1_
sebagai prefix baru untuk table.Saat Anda berada dalam file wp-config.php, cari juga nama database Anda, sehingga Anda bisa tahu database mana yang harus Anda edit. Cari bagian
define('DB_NAME'
.Bagian 2 – Update semua table database
Sekarang Anda harus mengupdate semua isian dalam database WordPress Anda. Ini bisa dilakukan melalui phpMyAdmin.Temukan database yang Anda cari di bagian 1 (sebelumnya) dan akses database tersebut.
Instalasi WordPress bawaan (default) memiliki 12 table dan masing-masing harus di-update. Ini juga bisa dilakukan lebih cepat dengan menggunakan bagian SQL di phpMyAdmin.
Mengganti setiap table secara manual pasti akan memakan waktu yang cukup lama, oleh karena itu kita akan menggunakan query SQL untuk mempercepat proses ini. Gunakan syntax berikut untuk meng-update semua table dalam database Anda.
RENAME table `wp_commentmeta` TO `wp_1secure1_commentmeta`; RENAME table `wp_comments` TO `wp_1secure1_comments`; RENAME table `wp_links` TO `wp_1secure1_links`; RENAME table `wp_options` TO `wp_1secure1_options`; RENAME table `wp_postmeta` TO `wp_1secure1_postmeta`; RENAME table `wp_posts` TO `wp_1secure1_posts`; RENAME table `wp_terms` TO `wp_1secure1_terms`; RENAME table `wp_termmeta` TO `wp_1secure1_termmeta`; RENAME table `wp_term_relationships` TO `wp_1secure1_term_relationships`; RENAME table `wp_term_taxonomy` TO `wp_1secure1_term_taxonomy`; RENAME table `wp_usermeta` TO `wp_1secure1_usermeta`; RENAME table `wp_users` TO `wp_1secure1_users`;Beberapa theme WordPress atau plugin bisa membuat table tambahan dalam database. Bila Anda memiliki lebih dari 12 table dalam database MySQL Anda, tambahkan sisanya secara manual ke list query seperti di atas dan eksekusi query tersebut.
Bagian 3 – Memeriksa option dan usermeta table
Bergantung sesuai jumlah plugin yang telah Anda install, sebagian nilai dalam database Anda akan harus di-update secara manual. Ini bisa dilakukan dengan cara menjalankan query SQL terpisah di option & usermeta pada table.Untuk option table Anda bisa menggunakan:
SELECT * FROM `wp_1secure1_options` WHERE `option_name` LIKE '%wp_%'Untuk usermeta table Anda bisa menggunakan:
SELECT * FROM `wp_1secure1_usermeta` WHERE `meta_key` LIKE '%wp_%'Jika Anda telah mendapatkan hasil query SQL, Anda bisa langsung meng-update semua nilai dari wp_ menjadi prefix baru yang telah Anda buat. Dalam usermeta table Anda harus meng-edit kolom isian meta_key, sementara itu untuk option, nilai option_name harus diganti.
Mengamankan instalasi WordPress baru
Jika Anda berencana meng-install website WordPress baru, Anda tidak perlu melewati proses sebelumnya. Anda cukup dengan mudah mengganti prefix table WordPress langsung di proses instalasi.Selamat! Sekarang website WordPress Anda sudah lebih terlindungi dari serangan SQL injection.
terimakasih, semoga bermanfaat.
0 comments:
Post a Comment