Panduan atau saran umum mengenai Wordpress

Panduan Keamanan Umum WordPress

Berikut ini adalah beberapa saran dasar yang bisa anda lakukan untuk membuat website berbasis wordpress anda menjadi lebih aman:

  • Selalu lakukan upgrade WordPress dan Plugin anda gunakan ke versi terbaru
  • Gunakan semua password cPanel dan WP-admin dengan password yang cukup kompleks (kombinasi alphabet, numerik, simbol, kapital) dan lebih dari 8 karakter
  • Waspadai plugin yang mengambil data eksternal misalkan twitter, rss feed, facebook terutama jika dari vendor yang kurang dikenal
  • Menambah dan mengkonfigurasikan beberapa plugin security misalnya: AskApache Password Protect, Bulletproof Security, Secure WordPress, WP Security Scan
  • Melakukan beberapa trik keamanan lainnya dengan melakukan pencarian referensi tambahan di google, misalkan “WordPress Security Hardening”
  • Memindahkan file wp-config.php dari /public_html/ ke / (root)
  • Mengubah permission file wp-config.php menjadi 0400

Overload WordPress Disebabkan Query Autoload

WordPress cukup umum mengalami overload pada CPU yang disebabkan proses query autoload yang tidak efisien pada tabel _options yang umumnya disalahgunakan oleh plugin yang justru digunakan sebagai tabel untuk menyimpan data namun tabel ini tidak memiliki kolom index sehingga mengakibatkan proses query berjalan sangat lambat jika datanya cukup besar.

Sebagai contoh proses query sql yang berjalan adalah:

SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes';




Untuk melihat beban query ini and adapat menjalankan pada mysqladmin/mysql:

explain SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes';



Disini akan terlihat bahwa query tersebut akan memproses berdasarkan hasil dari 226rb record yang mana query ini sangat berat dan tidak efisien untuk dijalankan dengan sering.

Secara default tabel _options pada wordpress tidak memiliki kolom index karena memang tidak digunakan untuk menyimpan data, namun beberapa plugin menyalahgunakan tabel ini dan menggunakannya untuk menyimpan record operasional sehingga mengakibatkan beban berlebih. Solusinya adalah dengan menambahkan kolom index pada tabel wp_options ini yaitu:

ALTER TABLE wp_options ADD INDEX (`autoload`);

Catatan: Lakukan BACKUP sebelum mengeksekusi syntax ini dan sesuaikan bagian “wp_options” dengan nama tabel pada wordpress anda karena dapat berbeda prefix (awalan).

Setelah itu anda dapat menjalankan kembali syntax EXPLAIN untuk melihat hasilnya:

explain SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes';



Saat ini jika query yang sama hanya dijalankan berdasarkan 408 record yang berarti terdapat efisiensi query sebesar 500%!

CPU Load dari server/hosting anda seharusnya akan turun jika sebelumnya masalah autoload ini menjadi kendala.

— Artikel ini disadur dari gubatron.com —

Mencegah DDOS xmlrpc dan pingback

Dalam banyak kasus wordpress seringkali mengalami overload disebabkan karena adanya serangan DDOS atau percobaan Brute Force pada salah satu modulnya xmlrpc.php, pada kebanyakan pengguna fungsi/fitur ini tidak diperlukan kecuali jika ingin menggunakan aplikasi WordPress Mobile Blogger.

Jika anda mencurigai wordpress anda mengalami overload, anda dapat menanyakannya pada support kami, atau jika memang tidak membutuhkan fitur tersebut dapat langsung menambahkan syntax berikut ini pada file .htaccess yang sudah ada di hosting wordpress anda:

############################################
# Jetpack XML-RPC DDoS PROTECTION
# You can whitelist your IP address if you use A Weblog Client
# or want to whitelist an IP address for any other reasons.
# Example: Add this line of code RewriteCond %{REMOTE_ADDR} ^(xxx\.xxx\.xxx\.xxx) [OR]
# inbetween the first and second lines of code below. Then replace the x's with the
# actual IP address you want to whitelist.
# Note: It is recommended that you use 3 octets x.x.x. of your IP address
# instead of 4 octets x.x.x.x of your IP address.
# Example: RewriteCond %{REMOTE_ADDR} ^(xxx\.xxx\.xxx\.) [OR]
RewriteCond %{REQUEST_URI} ^(xmlrpc\.php)$
RewriteCond %{HTTP_USER_AGENT} !^(.*Jetpack.*)$
RewriteRule ^(.*)$ - [F]

# Jetpack XML-RPC DDoS & TRACKBACK/PINGBACK PROTECTION
# You can whitelist your IP address if you use A Weblog Client
# or want to whitelist an IP address for any other reasons.
# Example: Add this line of code RewriteCond %{REMOTE_ADDR} ^(xxx\.xxx\.xxx\.xxx) [OR]
# inbetween the first and second lines of code below. Then replace the x's with the
# actual IP address you want to whitelist.
# Note: It is recommended that you use 3 octets x.x.x. of your IP address
# instead of 4 octets x.x.x.x of your IP address.
# Example: RewriteCond %{REMOTE_ADDR} ^(xxx\.xxx\.xxx\.) [OR]
RewriteCond %{REQUEST_URI} ^(xmlrpc\.php|wp-trackback\.php)$
RewriteCond %{HTTP_USER_AGENT} !^(.*Jetpack.*)$
RewriteRule ^(.*)$ - [F]
############################################

Jika anda mengalami kesulitan menambahkan syntax ini silakan hubungi kami melalui Live Chat atau Tiket Support untuk bantuan lebih lanjut.

Membuat Htaccess Standar Bawaan WordPress

Jika suatu waktu anda kehilangan file .htaccess bawaan wordpress dan ingin membuat ulang file tersebut, silakan membuat ulang file ini melalui cPanel anda dan pada menu File Manager, masuk pada subdirektori /public_html dan pilih opsi “+ File” untuk membuat file baru bernama “.htaccess” kemudian edit file ini dan masukkan entri berikut pada file /public_html/.htaccess di wordpress anda:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress


Jika anda menggunakan varian WordPress Multi User (WPMU) harap menggunakan konten file .htaccess berikut ini:

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

Dukungan mod_rewrite

Q1: Apakah HostingCeria mendukung penggunaan mod_rewrite saat ini?
A: Ya, seluruh hosting cPanel kami sudah mendukung mod_rewrite secara otomatis dan dapat langsung digunakan.

Q2: Bagaimana cara menggunakan mod_rewrite ini pada web saya?
A: Cara penggunaannya secara umum menggunakan .htaccess dan biasanya setiap script web sudah memiliki template otomatis file .htaccess ini, misalkan wordpress cukup dengan cara mengaktifkan fasilitas Permalink.