Sebelumnya keamanan website bukan menjadi perhatian saya. Tapi kemudian dari pengalaman pribadi mengelola website dengan domain publik, ternyata sangat rentan serangan cracker. Paling sering adalah deface website. Belajar dari pengalaman tersebut, berikut beberapa langkah ikhtiar untuk meningkatkan keamanan di blog atau website bermesin WordPress :

1. Rajin update WordPress dan plugin jika telah tersedia versi terbaru.

Update WordPress, plugin dan software lainnya tentu disamping untuk memutakhirkan fitur juga membawa perbaikan lubang keamanan di versi sebelumnya.

2.  Password yang kuat dan tidak menggunakan  “Admin” sebagai nama pengguna (username)

Disarankan password menggunakan kombinasi angka, huruf dan karakter khusus (#,!,$,% dan sejenisnya). Sedangkan “Admin” adalah nama pengguna default yang pastinya akan mudah ditebak jika tidak diganti.

3.  Gunakan SSL Encryption

SSL Encryption digunakan untuk mengenkripsi kiriman data blog sehingga data akun seperti username, password dll akan lebih aman. Untuk menerapkan SSL Encryption pada blog WordPress anda hanya perlu menambahkan script berikut ini pada pada file wp-config.php yang ada di tempat wordpress terinstal :

define ('FORCE_SSL_ADMIN', true);

 

4.  Ganti WordPress table prefix default

Standar tabel prefix instalasi WordPress adalah ‘wp_’. Dapat diganti sewaktu menginstall WordPress.

Tetapi bila hendak diganti setelah menginstall WordPress, bisa memanfaatkan plugin WP Security Scan atau Tabel Prefix Changer. Jangan lupa back up terlebih dahulu sebelum melakukannya.

5.  Memasang plugin keamanan

Beberapa plugin kemanan yang bisa dipasang diantaranya : Limit Login Attempts, Block Bad Queries (BBQ), BulletProof Security, WordPress Firewall.
Plugin-plugin ini selain menjalankan fungsinya masing-masing, juga sekaligus bisa untuk : membuat file .htaccess di folder wp-admin, menyembunyikan plugin, melindungi file-file .httaccess; wp-config.php dan wp-settings.php,  dan juga menyembunyikan versi WordPress.

6.  Hapus file Readme.html dan Licence.txt

Untuk meminimalkan terpaparnya versi WordPress yang terinstal. Menghapusnya bisa melalui cPanel ataupun FTP.

7. Ubah Setting File Permission wp-config.php ke 644

8. Memindahkan File wp-config.php

Wp-config merupakan file yang mengonfigurasi database setting (database username dan password), table prefix, secret keys, bahasa, dan ABSPATH.  Sehingga perlu diamankan. Tanpa file ini, WordPress tidak akan berfungsi. File ini dapat disimpan di luar root direktori WordPress sejak WordPress 2.6.

Langkahnya :

  • Buat folder di tempat WordPress terinstall. Penamaannya bebas. Contoh : rahasia

meningkatkan keamanan wordpress

  • Copy file wp-config.php di folder tempat WordPress terinstall. Paste ke dalam folder “rahasia” yang telah dibuat.
  • Kemudian, ubah nama file wp-config yang ada di folder “rahasia”. Penamaannya bebas. Contoh : configrahasia.php

meningkatkan keamanan wordpress

 

  •  Edit file wp-config.php yang ada di folder tempat WordPress terinstall (bukan wp-config.php yang ada di folder rahasia). Ganti seluruh tulisan yang ada dengan :

<?php
include $_SERVER['DOCUMENT_ROOT']."/rahasia/configrahasia.php";
?>

  •  Sesuaikan nama folder dan nama filenya dengan yang dibuat (di atas hanya  berdasar contoh)

9. Ubah URL Login Admin WordPress

Dengan menyembunyikan dan merubah URL wp-admin, wp-login.php, dan wp-signup.php tanpa plugin ini maka hanya admin saja yang tahu, keamanan halaman admin lebih terjaga. Berikut langkah mengubah url login admin WordPress tanpa plugin.

Untuk menyembunyikan URL wp-admin, wp-login.php, tambahkan kode di bawah ini ke file .htaccess tempat WordPress terinstall. Mudahnya, letakkan di baris paling bawah :

# Mulai WP admin Hide
<IfModule mod_rewrite.c>
RewriteEngine On

RewriteRule ^masuk/?$ /wp-login.php?masuk=1 [R,L]

RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in_.*$
RewriteRule ^dashboard/?$ /wp-login.php?masuk=1&redirect_to=/wp-admin/ [R,L]

RewriteRule ^dashboard/?$ /wp-admin/?masuk=1 [R,L]

RewriteRule ^daftar/?$ /wp-login.php?4y0co6at3b4k4ku&action=register [R,L]

RewriteCond %{SCRIPT_FILENAME} !^(.*)admin-ajax\.php
RewriteCond %{HTTP_REFERER} !^(.*)namadomainnya.net/wp-admin
RewriteCond %{HTTP_REFERER} !^(.*)namadomainnya.net/wp-login\.php
RewriteCond %{HTTP_REFERER} !^(.*)namadomainnya.net/masuk
RewriteCond %{HTTP_REFERER} !^(.*)namadomainnya.net/dashboard
RewriteCond %{HTTP_REFERER} !^(.*)namadomainnya.net/daftar
RewriteCond %{QUERY_STRING} !^masuk=1
RewriteCond %{QUERY_STRING} !^action=logout
RewriteCond %{QUERY_STRING} !^action=rp
RewriteCond %{QUERY_STRING} !^action=register
RewriteCond %{QUERY_STRING} !^action=postpass
RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in_.*$
RewriteRule ^.*wp-admin/?|^.*wp-login\.php /not_found [R,L]

RewriteCond %{QUERY_STRING} ^loggedout=true
RewriteRule ^.*$ /wp-login.php?masuk=1 [R,L]
</IfModule>
# Akhir WP admin Hide

Ubah “namadomainnya.net” dengan alamat website sesungguhnya. Setelah di-save, untuk login ke website dengan mengetikkan :

http://alamatwebsite.net/wp-login.php?masuk=1

10.  Mengganti Key wp-config.php

Ketika user login ke wordpress maka ada secuil informasi yang ditinggalkan oleh WordPress di komputer user. Secuil informasi itu biasa disebut cookies. File itu berguna agar tidak setiap saat harus login ke wordpress. Cookies itu sebenarnya tidak berbahaya tapi bisa digunakan untuk mendapatkan akses login.

Maka perlu untuk mengganti secara rutin  key wp-config.php . Dengan mengganti key tersebut, maka semua cookies pada user menjadi tidak berlaku lagi dan user harus melakukan login kembali.

Langkah-langkahnya :

  • Masuk ke https://api.wordpress.org/secret-key/1.1/salt/ , akan secara otomatis mendapatkan 8 baris key. Setiap direfresh halaman tersebut, maka akan didapatkan key yang baru. Copy semua key yang ada di halaman tersebut.
  • Buka file wp-config.php yang asli dan cari bagian seperti di gambar bawah ini :

meningkatkan keamanan wordpress

Demikian.