gravity adventure

14/01/11

Celah Keamanan WordPress dan .htaccess

Do you want to share?

Do you like this story?

Kemaren dulu ada pembahasan mengenai celah keamanan WordPress yang dibahas di forum Adsense-ID. Celah keamanan WordPress ini memberikan kesempatan pada pihak ketiga untuk mendapatkan username CPanel hosting yang kita gunakan.

Target URL: http://alamatblogwp.com/wp-includes/wp-db.php
Pesan Error: Fatal error: Call to undefined function wp_die() in /home/USERNAME/public_html/wp-includes/wp-db.php on line 1039

Target URL tidak hanya file wp-db.php dalam folder wp-includes, tapi ada banyak file .php lainnya yang juga akan menghasilkan pesan error yang sama.

Nah untuk menghindari munculnya error tersebut, aku menggunakan .htaccess untuk memblokir semua akses ke file bertipe .php yang ada di dalam folder wp-content dan wp-includes. Yang diperbolehkan hanya akses ke file-file bertipe .css, .jpeg, .jpg, .png, .gif, dan .js.
Kode .htaccess yang aku gunakan seperti ini:

Order Allow,Deny
Deny from all

Allow from all

File .htaccess-nya ditempatkan langsung di dalam folder wp-content dan wp-includes itu sendiri. Terpisah dengan file .htaccess yang ada di root folder (/public_html/).

Tanpa aku sadari, kode .htaccess tersebut ternyata mengakibatkan beberapa masalah baru. Biarpun ga segawat jika orang lain mendapatkan username ke CPanel hosting, tapi sempat bikin aku jengkel dan bingung kenapa hal itu bisa terjadi hihihi…

Masalah 1. Hilangnya panel TinyMCE dari halaman editor.


Padahal panel itu berguna banget buat nulis ataupun mengedit postingan. Sampe kangen sama fungsi Full Screen-nya
:P
Tebakan pertama ada file TinyMCE di folder wp-includes yang rusak, tapi setelah beberapa kali upload ulang folder wp-includes tanpa menyelesaikan masalah, aku tahu kalau masalahnya ga sesederhana itu.
Baru kemaren ketika aku menambahkan file .htaccess ke folder wp-includes di situs baruku, barulah aku curiga kalau masalahnya ini sebenarnya terjadi karena ada file yang terblokir oleh kode keamanan di dalam file .htaccess tersebut.

Sedikit trial and error, berikut ini kode .htaccess yang baru untuk diletakkan di dalam folder wp-includes. Tetap memblokir akses ke file .php, dengan memberikan sedikit akses agar panel TinyMCE di post editor dapat bekerja dg baik.

Order Allow,Deny
Deny from all

Allow from all


Allow from all

Masalah 2. WP-PostRatings plugin berhenti bekerja.
WP-PostRatings plugin itu fungsinya memungkinkan pengunjung untuk memberikan rating terhadap postingan kita. Tampilannya bisa berupa bintang, progress bar dll.

Ketika masih menggunakan .htaccess versi original diatas, biarpun rating-nya tetap muncul, tapi pengunjung tidak dimungkinkan untuk memberikan rating.

Permasalah kemudian terselesaikan setelah kode .htaccess untuk folder wp-content aku rubah menjadi seperti ini:
Order Allow,Deny
Deny from all

Allow from all


Allow from all

Dengan perubahan ini, kita memberikan akses khusus ke file wp-postratings.php yang dibutuhkan oleh plugin WP-PostRatings agar dapat bekerja dengan baik.

Setiap blog tentunya mempunyai settingan sendiri-sendiri, tapi dengan menggunakan prinsip .htaccess diatas, kita bisa menutup satu celah keamanan di WordPress dengan tetap memberikan akses ke fitur ataupun plugin yang dibutuhkan.

Untuk konfirmasi, selain kedua masalah diatas, sampai saat ini aku belum menemukan masalah lain terkait penggunaan kode .htaccess diatas. Blog WordPress tetap bekerja dengan baik biarpun akses pengunjung ke file .php di folder wp-includes dan wp-content dibatasi.

Update:
Tambahkan juga dua baris berikut ini di dalam file wp-config.php, tepat setelah kode

ini_set("display_errors", 0);
error_reporting(0);

Salam
[Poer]

Copy Paste dari exclusivewordpress.com

YOU MIGHT ALSO LIKE

0 comments:

Posting Komentar

Advertisements

Advertisements