11 Jun 2015

Keamanan Dasar Situs Wordpress

Umumnya keamanan situs Wordpress itu mudah di kontrol. Core Wordpress sendiri merupakan system yang cukup aman. Pengembang sendiri menar... thumbnail 1 summary
Umumnya keamanan situs Wordpress itu mudah di kontrol. Core Wordpress sendiri merupakan system yang cukup aman. Pengembang sendiri menaruh perhatian yang sangat serius terhadap masalah keamanan wordpress, mereka merilis secara berkala setiap patch terbaru. Inilah yang menjadi salah satu kelebihan wordpress yaitu sangat mudah untuk diupdate dan tidak sulit untuk dikembangkan.

Umumnya, masalah pada wordpres timbul akibat kecerobohan para pengguna (end users) itu sendiri. Mungkin dikarenakan kurangnya pengetahuan atau pengalaman dari sisi pengguna.

Berikut saya akan coba paparkan beberapa sisi pengamanan dasar situs wordpress berdasarkan pengalaman yang pernah saya alami.

1. Menjaga agar situs Wordpres selalu up to date.

Menjaga agar situs wordpress selalu update adalah penting demi keamanan situs itu sendiri. Untuk melakukan update tidaklah sulit, tinggal klik tombol update ayang muncul di halaman Dashboard Admin ketika release patch terbaru dikirim oleh pengembang.

2. Hapus Default Admin login

User default wordpress dengan privileges Admin merupakan sasaran empuk untuk diexploitasi. Sebaiknya hapus saja user ini ganti dengan user baru dengan privileges Admin. Berikut cara menghapusnya:

Login dengan default Admin
Create user baru dengan privileges admin, beri nama yang unik agar mudah untuk diingat dan sulit ditebak. (langkah ini sangat penting)
Logout dari user admin default tersebut kemudian login lagi dengan menggunakan user admin yang baru saja di-create.
Kemudian hapus user admin yang lama.

Notes: Langkah ini juga dapat dilakukan ketika proses instalasi awal dilakukan yaitu dengan mengubah nama user admin dengan nama unik lain yang tidak mengindasikan user tersebut sebagai admin.

3. Mengganti Nickname Wordpress

Ketika Anda mempublish sebuah artikel, Nickname Anda akan ikut pula dipublish, yaitu Username yang Anda gunakan untuk login ke halaman dashboard situs wordpress.
Ganti nickname ini dengan nickname yang berbeda dengan nama Username.
Adapun cara mengganti Nickname yaitu dengan mengklik Profil Anda atau Users pada halaman Dashboard Admin situs Wordpress, lalu masukkan nickname, kemudian  pada kolom   Display name publicly as:  pilih nama yang berbeda dengan nama Username yang Anda gunakan untuk login halaman Dashboard Wordpress.


4. Buat schedule backup secara teratur

Backup secara teratur adalah suatu keharusan dan lebih bagus lagi jika situs dibackup secara berjenjang. Maksudnya adalah dengan melakukan backup terhadap Database Wordpress dan juga terhadap disk server Anda. Ada banyak plugin gratis yang dapat digunakan sebagai alat membackup data-data situs Anda. Juga sangat disarankan untuk bertanya ke Web Host Anda tentang disk backup.


5. Ganti Security Keys Wordpress Anda secara berkala.

Wordpress menerapkan Security Keys yang terenkripsi pada situs Anda untuk disimpan dalam cookies. Anda dapat menemukan Security Keys pada wp-config.php. Untuk mengganti key ini Anda dapat menggenerate key baru di URL ini https://api.wordpress.org/secret-key/1.1/salt. Copy paste key-key tersebut ke dalam file wp-config.php Anda.

6. Ganti prefix database (hanya pre-installation)

Ini hanya untuk PRE-INSTALLATION. Ketika Anda menginstall Wordpress (fresh install), wordpress menyediakan sebuah opsi untuk mengganti prefix table database. Default prefix untuk seluruh table dalam database Wordpress adalah "WP_" seperti terlihat pada gambar di bawah. Default prefix table ini sangat memudahkan pihak yang tidak diinginkan untuk mengekspoit situs Anda.

Keamanan Dasar Situs Wordpress

7. Batasi plugin dan tema wordpress yang Anda gunakan

Tidak hanya karena masalah keamanan, tapi dengan banyaknya plugin dan tema yang  digunakan akan menurunkan kinerja situs Wordpress itu sendiri. Batasi penggunaan banyak plugin sedapat mungkin, hapus semua plugin-plugin dan tema yang tidak digunakan.
Menjaga agar situs wordpress tetap bersih dan ramping akan mereduce peluang serangan ke situs dan kode-kode jahat dari aksi eksploitasi, jika sesuatu terjadi pada situs maka proses penanganannya akan lebih mudah dilakukan.

8. Pindahkan file wp-config.php ke luar dari root situs.

File wp-config.php berisi informasi credentials database situs Wordpress. File ini diamankan dengan cara dipindahkan ke luar dari root situs (lihat gambar di bawah) di mana anda memproteksinya dari serangan berbasis browser. Akan lebih bagus lagi kalau hak akses file diganti menjadi 600.

Keamanan Dasar Situs Wordpress






9. Batasi kegagalan login

Plugin Limit Login Attempts sangat berguna untuk membatasi kegagalan login ke situs Anda dan mengunci mati situs dari serangan brutal ke situs. Plugin bahkan bisa menyimpan IP si pengguna yang gagal Login ke situs Anda.

10. Periksa file dan directory permission (hak akses file dan folder)

Hak akses file dan directory (file and directory permission)  bisa jadi agak rumit tergantung dari host Anda. Pada banyak kasus Anda ingin memiliki file-file yang diatur ke 644 atau 640 dan folder diatur ke 755 atau 750. Semestinya Anda tidak perlu mengatur apa-apa untuk 0,777 kecuali host Anda telah pernah melakukan mis-configuration (salah konfigurasi). Rule yang paling bagus untuk permission (hak akses)  adalah dengan mengatur hak akses file dan folder serendah mungkin tanpa memberi efek apa-apa kepada kinerja situs.

11. Sembunyikan Versi Wordpress Anda

Menyembunyikan informasi versi wordpress dapat dilakukan dengan langkah sederhana dan mudah namun sangat penting untuk mencegah bots melakukan crawlings ke situs Anda. Caranya adalah dengan menyisipkan kode berikut ke dalam file functions.php dari theme Anda:
function wpbeginner_remove_version() {
return '';
}
add_filter('the_generator', 'wpbeginner_remove_version');

12. Enable ssl login

Enable ssl login dapat dilakukan jika situs Anda memiliki ssl certificate. Untuk mengaktifkan ssl, situs Anda harus dapat dijangkau dengan menggunakan https. Anda dapat meng-enablekan ini hanya untuk login atau untuk keseluruhan Admin pada file wp-config.php. SSL login akan mengengkripsi data yang Anda kirimkan ke Wordpress dan sangat bermanfaat khususnya untuk mengagalkan serangan ke situs wordpress Anda.

// this disisipkan dalam file wp-config.php Anda
//
//hanya untuk login
define('FORCE_SSL_LOGIN', true);
//for the whole admin
define('FORCE_SSL_ADMIN', true);

13. Mencegah bots untuk menjelajahi directory situs Anda

Pencarian Google dapat merayapi url yang tidak diinginkan dan mengekspos informasi tersebut untuk hacker. Hal terbaik adalah mencegah Google bot dan bot lainnya yang merujuk ke file robots.txt (tidak semua demikian) untuk mengindeks semua konten dalam situs Anda.  
robot.txt ini bekerja di dalam folder root situs Anda dan hanya merupakan file teks biasa.
User-agent: *

Disallow: /feed/
Disallow: /trackback/
Disallow: /wp-admin/
Disallow: /wp-content/
Disallow: /wp-includes/
Disallow: /xmlrpc.php
Disallow: /wp-

14. Disable fungsi edit/updates theme atau plugins

Cegah user agar tidak melakukan editing atau updating file via admin
define('DISALLOW_FILE_EDIT',true); //edits
define('DISALLOW_FILE_MODS',true); //updates

15. Rule dasar untuk file .htaccess

Berikut rule dasar (basic) yang dapat anda masukkan ke dalam file .htaccess yang berada pada folder root situs wordpress Anda.
//limit indexing of directories
Options All -Indexes

//protect the htaccess file,
//this is done by default with apache config file,
// but you never know.

order allow,deny
deny from all


//disable the server signature
ServerSignature Off

//limit file uploads to 10mb
LimitRequestBody 10240000

// protect wpconfig.php.
//If you followed step 6 this is not necessary.

order allow,deny
deny from all

16. Disable User Registration

Jika Anda menjalankan situs berbasi blog biasa dan tidak membutuhkan banyak pengguna matikan fungsi User Registration. Disable fungsi User Registration ini dapat dilakukan melalui halaman Admin melalui menu General Settings seperti berikut:

Keamanan Dasar Situs Wordpress

17. Hapus semua file readme dan semua file yang tidak dibutuhkan.

Wordpress memliki file readme.html default, dan hampir semua plugin dan theme wordpress juga memiliki satu buah file readme ini. Sebaiknya semua file-file tersebut dihapus karena dapat dimanfaatkan untuk mengetahui seluk beluk situs seperti informasi versi dan lain-lain.