Mengamankan Situs Wordpress Dari Serangan

Posted: 18 Apr 2013 22:17         Kategori: PHP & MySQL
Mengamankan Situs Wordpress Dari Serangan

Jutaan situs web di dunia menggunakan Wordpress sebagai  CMSnya.  Kepopuleran  Wordpress dibandingkan CMS  lainnya juga membuatnya menjadi  target besar bagi para hacker. Hal ini membuat  administrator situs harus melakukan upaya ekstra dalam hal pengamanan website atau blog dari serangan ataupun penerobosan ke dalam sistem.  Bagaimana caranya mengamankan instalasi situs atau blog Wordpress anda?  Berdasarkan titik-titik lemahnya atau lubang keamanannya ada beberapa  cara untuk melindungi  situs WP anda.
Berikut  hal-hal yang dapat anda lakukan untuk membuat  instalasi WordPress menjadi jauh lebih aman dan agar situs wordpress tidak dihack .

  • Banyak yang menginstal WordPress secara standar termasuk account pengguna administrator yang nama hanya "admin". Hacker mungkin mencoba untuk login ke account ini dengan menebak password.

    Pertahanan: Setiap unsur yang dapat ditebak  memberikan hacker peluang. Meskipun hacker masih perlu menebak  secara bertubi-tubi (Brute-Force)  password anda untuk mengakses account admin anda bahkan lebih aman tanpa account "admin" sama sekali. Login ke administrator WordPress dan buatlah user baru dengan nama tak terduga dan tetapkan hak administrator untuk pengguna ini. Sekarang hapuslah account bernama "admin".  Seorang hacker sekarang akan perlu menebak baik username dan password untuk mendapatkan akses administrator.
  • Hacker sering mengandalkan script otomatis untuk menghack situs wordpress. Script ini dapat membuat berbagai upaya untuk login ke halaman administrasi WordPress  dengan mencoba ribuan dan jutaan kombinasi username dan password. Dengan usaha login bertubi-tubi ini dapat  memperlambat situs web dan mungkin juga berhasil memberi hacker kontrol penuh atas situs anda.

    Pertahanan: Selalu  menggunakan password yang kuat.  Password dengan kombinasi  huruf, angka, special character, akan memakan waktu lebih lama untuk serangan brute-force untuk memecahkan password.  Sebuah pertahanan yang lebih efektif adalah dengan menginstal login limiter untuk WordPress.   Login limiter  dapat memblokir atau mengkarantina IP atau usename yang mencoba dan gagal untuk login di atas tingkat ambang batas. Misalnya login salah melebihi  10 kali per 5 menit  tidak dapat login lagi sampai 1 jam kedepan. Dua plugin yang dapat membantu anda adalah Limit Login Attempts dan Better WP Security.
  • WordPress  menggunakan database dan mengeksekusi script di server-side di PHP. Kedua karakteristik ini dapat membuat WordPress rentan terhadap serangan injeksi URL  oleh orang-orang iseng.  Perintah dikirim ke WordPress melalui parameter URL . Dapat disalahgunakan oleh hacker yang tahu bagaimana menyusun parameter agar  Wordpress melakukan/menjadi  hal yang diinginkannya .

    SQL injection merupakan serangan  dimana hacker menanamkan perintah dalam URL yang dapat memicu perintah-perintah database.  SQL merupakan bahasa perintah yang digunakan oleh database MySQL .  Tindakan ini bisa saja mencari informasi sensitif  dalam database  yang berpotensi memberikan hacker masuk  kemudian  memodifikasi isi dari situs anda atau bahkan mengosongkan isi web anda.  Selain itu versi lain dari hack URL dapat memicu perintah PHP yang tidak diinginkan seperti memasukkan malware atau mengungkapkan informasi sensitif  yang tidak seharusnya diketahui orang lain.

    Pertahanan:  Umumnya WordPress di hosting di server Apache. Apache menggunakan sebuah file bernama .htaccess yang mendefinisikan aturan akses untuk suatu situs web. Satu set menyeluruh aturan dapat mencegah berbagai jenis SQL Injection dan hacks URL dari yang ditafsirkan.
    RewriteEngine On
    RewriteBase /
    RewriteCond  %{REQUEST_METHOD} ^(HEAD|TRACE|DELETE|TRACK) [NC]
    RewriteRule ^(.*)$ -  [F,L]
    RewriteCond  %{QUERY_STRING} \.\.\/ [NC,OR]
    RewriteCond  %{QUERY_STRING} boot\.ini [NC,OR]
    RewriteCond  %{QUERY_STRING} tag\= [NC,OR]
    RewriteCond  %{QUERY_STRING} ftp\: [NC,OR]
    RewriteCond  %{QUERY_STRING} http\: [NC,OR]
    RewriteCond  %{QUERY_STRING} https\: [NC,OR]
    RewriteCond  %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
    RewriteCond %{QUERY_STRING}  mosConfig_[a-zA-Z_]{1,21}(=|%3D) [NC,OR]
    RewriteCond  %{QUERY_STRING} base64_encode.*\(.*\) [NC,OR]
    RewriteCond  %{QUERY_STRING} ^.*(\[|\]|\(|\)|<|>|ê|"|;|\?|\*|=$).* [NC,OR]
    RewriteCond  %{QUERY_STRING} ^.*("|'|<|>|\|{||).* [NC,OR]
    RewriteCond %{QUERY_STRING}  ^.*(%24&x).* [NC,OR]
    RewriteCond  %{QUERY_STRING} ^.*(%0|%A|%B|%C|%D|%E|%F|127\.0).* [NC,OR]
    RewriteCond  %{QUERY_STRING} ^.*(globals|encode|localhost|loopback).* [NC,OR]
    RewriteCond  %{QUERY_STRING} ^.*(request|select|insert|union|declare).* [NC]
    RewriteCond  %{HTTP_COOKIE} !^.*wordpress_logged_in_.*$
    RewriteRule ^(.*)$ -  [F,L]
  • Instalasi WordPress berisi beberapa file yang tidak seharusnya diakses orang luar. File-file seperti file konfigurasi, script instalasi, lisensi dan bahkan "readme"  file harus dijaga agar tidak terekspose.

    Pertahanan: Seperti mencegah URL hacking, Anda dapat menambahkan perintah ke file htaccess   untuk memblokir akses ke file pribadi sensitif.  Kode berikut akan memblokir akses ke direktori listing, beberapa  file tertentu yang berhubungan dengan WordPress dan servernya.

    Options All –Indexes
    <files .htaccess>
    Order allow,deny
    Deny from all
    </files>
    <files readme.html>
    Order allow,deny
    Deny from all
    </files>
    <files license.txt>
    Order allow,deny
    Deny from all
    </files>
    <files install.php>
    Order allow,deny
    Deny from all
    </files>
    <files wp-config.php>
    Order allow,deny
    Deny from all
    </files>
    <files error_log>
    Order allow,deny
    Deny from all
    </files>
    <files fantastico_fileslist.txt>
    Order allow,deny
    Deny from all
    </files>
    <files fantversion.php>
    Order allow,deny
    Deny from all
    </files>
  • Database WordPress terdiri dari banyak tabel. Dalam banyak menginstal WordPress, tabel ini diberi nama dengan awalan default yang dimulai dengan "wp_".  Bagi para hacker kemampuan untuk memprediksi apa pun bisa memberikan peluang.

    Pertahanan: Dengan mengganti  prefix  tabel WordPress anda dapat menghilangkan peluang  ini.  Saat membuat instalasi baru WordPress, anda dapat menentukan prefix tabel sendiri. Buatlah prefix yang unik dan tak terduga.  Jika Wordpress sudah terinstal dapat mengubah prefix  tabel untuk instalasi WordPress yang ada adalah dengan menggunakan plugin yang bernama Better WP Security .

Tags: Wordpress, Cms, Keamanan Situs