Tips Mengamankan Website WordPress dari hack

Salam sukses semua, kali ini saya akan sedikit membuatkan tips untuk mengamankan website kita khususnya yang sering dipakai yaitu CMS wordpress. Meski prakteknya ini memakai wordpress tapp teknik ini juga berlaku untuk cms lain semacam joomla atau atau jenis website lain. Pada dasarnya wordpress adalah sangat aman karena di buat oleh para programmer tingkat dunia dan juga di audit oleh para pemakai di seluruh dunia, namun sayangnya yang membuat wordpress tidak aman adalah sebenarnya kita sendiri.

images

Dari tutorial ini bukan mengamankan 100% trus website kamu tidak dibobol, tapi hanya sedikit memperkuat pengamanan saja. Karena memang tidak ada keamanan yang sempurna  dan selamanya, serta keamanan bukan one time deal yang bisa sekali setting dan ditinggal. Karena mungkin yang sekarang di anggap secure dan besok sudah menjadi yang buggy dan berbahaya mengikuti perkembangan teknologi terbaru.

Pada kali ini saya memakai pada hosting yang pakai litespeed dan apache, mungkin dalam environtment hosting lain salah satu cara ada yang berbeda cara setting/tekniknya:

 

  1. Sebelum melakukan apapun silahkan backup dulu database dan filenya. Database download melalui phpmyadmin dan file bisa anda compress dan download.
  2. Selalu update engine wordpress/plugin/themes anda ke yang terbaru
  3. JANGAN MEMAKAI plugin/themes nulled atau hasil crack atau bajakan atau plugin/themes premium yang anda dapat secara gratis dari situs nulled.
  4. Hapus file/folder theme/plugin yang tidak dipakai
  5. Jangan pakai username admin sebagai username anda, usahakan ganti dengan yang lain dan pakai Password yang kuat perbaduan angka huruf (besar-kecil) dan karakter.
  6. Ganti database table prefix menjadi yang unique, secara default adalah wp_ silahkan ganti menjadi wp_ak, see_pp, aku_kamu dll untuk gantinya bisa memakai pulgin wp-security scan. (sebelum melakukan langkah ini cek dulu langkah 1).Pada softaculous pada install WP pertama kali ada juga pihan mau pakai wordpress table prefix  apa.table_prefixPlugin berikut juga dapat mengubah table prefix database:
    • Sucuri Security
    • iThemes Security
    • Change DB Prefix
  7. Blok bot untuk crawl folder tertentu,krn orang yang akan deface biasanya hasil scan dr google dengan keyword tertentu untuk mencari bug. Silahkan tambahkan pada robots.txt
    User-agent: *
    Disallow: /cgi-bin
    Disallow: /wp-admin
    Disallow: /wp-includes
    Disallow: /wp-content/plugins/
    Disallow: /wp-content/cache/
    Disallow: /wp-content/themes/
    Disallow: */trackback/
    Disallow: */feed/
    Disallow: /*/feed/rss/$
    Disallow: /category/*

    Tambahkan kode brikut pada .htaccess

    RewriteEngine On
    RewriteCond %{HTTP_USER_AGENT} ^.*(agent1|Wget|Catall Spider).*$ [NC]
    RewriteRule .* - [F,L]
  8. Melindungi file wp-config dengan menambah rule berikut pada .htaccess<Files wp-config.php>
    Order Deny,Allow
    Deny from all
    </Files>
  9. Melindungi file htaccess  itu sendiri dengan menambah rule berikut pada .htaccess<Files ~ “^.*\.([Hh][Tt][Aa])”>
    order allow,deny
    deny from all
    satisfy all
    </Files>
  10. Melarang directory listing browsing, tambahkan pada   .htaccess atau buat file index.php pada tiap folder# disable directory browsing
    Options All –Indexes
  11. Melarang browsing pada folde includes serta disable editing, tambahkan pada htaccess
    # Block the include-only files.
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^wp-admin/includes/ - [F,L]
    RewriteRule !^wp-includes/ - [S=3]
    RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
    RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
    RewriteRule ^wp-includes/theme-compat/ - [F,L]
    </IfModule>
  12. Melarang beberapa script injection# protect from sql injectionOptions +FollowSymLinks
    RewriteEngine On
    RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
    RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
    RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
    RewriteRule ^(.*)$ index.php [F,L]
  13. Disable file editing, hal ini berarti file wordpress anda tidak bisa di edit melalui menu “Appearance” – “editor”, untuk mendisable editing masuk ke wp-config dan ubah settingnya menjadi:
    define(‘DISALLOW_FILE_EDIT’, true);
  14. Jika diperlukan anda bisa membuat password lagi pada directory wp-admin dengan memberi password melalui cpanel “password protect directory” silahkan diberi password pada folder wp-adminpassword
  15. Pasang akismet dan plugin cacptcha untuk melindungi dari comment spam
  16. Gunakan file permission yang benar dimana pada umumnya adalah  untuk folder 755 atau 750 dan untuk file gunakan 644 atau 640 dan juga CHMOD  wp-config menjadi  400 atau 600
    Diatas dari sisi dalam wordpress, next dari sisi hosting
  17. Untuk melakukan ini bisa anda tambahkan melalui php.ini (jika hosting anda ada dan memperbolehkan) atau .htaccess untuk mendisable fungsi yang mungkin berbahayaDisable register_globals
    Disable allow_url_fopen
    Disble display_errors
    disable_functions = show_source, system, shell_exec, passthru, exec, phpinfo, popen, proc_openDengan mendisable  fungsi yang berpotensi berbahaya diatas mungkin saja membuat salah satu script tidak berjalan, jika script tersebut membutuhkan fungsi dari salah satu tersebut diatas.
  18. Disable xml-rpc, banyak sekali brute force pada wordpress adalah dari mengekploitasi xml-rpc dan 99% pemakai wordpress sebenarnya tidak membutuhkan fitur xml-rpc sehingga anda bisa mendisablenya, untuk mendisablenya gunakan plugin disable xml-rpc yang banyak tersedia di wordpress, jika anda membutuhkan fitur xml-rpc tidak disarankan untuk mendisablenya.
  19. Lakukan backup berkala pada akun hosting atau website anda
  20. Jika anda kena hack/deface dan tidak bisa menyelesaikan sendiri coba silahkan untuk hubungi kami,semoga kami bisa membantu ataupun memberikan backup anda.Baca juga artikel cara mengatasi comment spam pada wordpress

Related Posts:

  • No Related Posts

22 Comments

Leave a Reply

Time limit is exhausted. Please reload CAPTCHA.