Kumpulan panduan/saran umum untuk beberapa web script populer

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.

Magento Error – Exception printing is disabled

Pada instalasi Magento anda jika menemui error seperti berikut ini setelah selesai melakukan instalasi Magento:

====================================
There has been an error processing your request
Exception printing is disabled by default for security reasons.
Error log record number: XXXXXXXXXXXXXXX
====================================

Lakukan hal berikut ini sebagai solusinya:

  1. Login dahulu ke cPanel anda dan gunakan File Manager
  2. Buka direktori /public_html/errors atau direktori awal dari instalasi magento anda
  3. Ubah local.xml.sample menjadi local.xml
  4. Jika anda menemukan banyaknya error pada halaman magento anda setelah ini maka ini adalah normal
  5. Pada direktori awal magento anda buka file /lib/Zend/Cache/Backend/File.php, klik kanan file ini dan pilih Edit, anda akan menemukan ‘cache_dir’ => ‘null’ dan ubah menjadi ‘cache_dir’ => ‘tmp/’ kemudian klik Save.
  6. Langkah terakhir adalah membuat direktori ‘tmp’ pada direktori instalasi awal magento anda.

Bagaimana mengamankan joomla?

Tanya:
Bagaimana saya dapat meningkatkan keamanan joomla yang saya gunakan agar terhindar dari serangan hacking?

Jawab:
Untuk meningkatkan keamanan joomla yang anda gunakan (1.0.xx atau 1.5.x) kami menyarankan beberapa hal berikut ini:

  1. Selalu lakukan update joomla yang anda gunakan ke versi terbaru karena joomla mempunyai pengguna yang sangat banyak sehingga celah kemanan yang ditemukan sangat cepat dieksploitasi.
  2. Pastikan anda sudah melakukan teknik – teknik pengamanan dasar berdasarkan referensi joomla di: http://docs.joomla.org/Joomla_Administrators_Security_Checklist
  3. Anda dapat mengikuti perkembangan terbaru joomla dan diskusi langsung dengan komunitas joomla indonesia di: www.id-joomla.com

Instalasi Express js di Hosting cPanel

Dengan menggunakan fitur nodeJS Selector pada cPanel hosting, kita dapat deploy berbagai macam framework nodejs salah satunya adalah Express.js

Apa itu Express.js ?
Sebuah framework yang berjalan dengan bahasa pemrograman NodeJS

Mengapa menggunakan Express.js ?

  • Cepat dan Fleksibel.
  • Banyak fitur untuk keperluan development website.
  • Adanya dukungan middleware.
  • Support HTTP verb seperti POST, GET, PUT dan sebagainya.
  • Routing dan Helper yang digunakan sangat mudah dan terstruktur.
  • Dokumentasi lengkap dan mudah dipahami.


Panduan untuk instalasi dan menggunakan Express.js adalah sebagai berikut ini:

1. Login dahulu ke cPanel anda dan klik Setup Nodejs App
nodejs1

2. klik Create Application

3. Pilih versi NodeJS dan disarankan menggunakan versi 8.
– Application mode bisa dipilih apakah mode development atau production. (coba pilih production)
– Application root adalah folder dimana aplikasi nodejs akan tersimpan (contoh: expressjs)
– Application URL digunakan untuk meletakan dimana nodejs akan diakses (bisa diisi expressjs)
– Application startup file adalah file awal yang akan dibaca oleh nodejs (Dalam hal ini bisa dituliskan app.js)

nodejs2

4. NodeJS aplikasi anda telah dibuat dan dapat dbuka di http://alamatwebanda/expressjs

5. Login ke SSH atau gunakan aplikasi cPanel > Terminal, dan ikuti petunjuk seperti ini:

expressjs1

expressjs2

6. Tuliskan perintah :

NODE_ENV=production npm install

7. Kemudian input:

npm init

8. Kemudian buka halaman setup nodeJS App dan klik tombol restart & run npm install.
expressjs3

9. Install Express.JS dengan cara kembali ke ssh akses / console / terminal dan jalankan perintah:

npm install express

10. Gunakan perintah vim atau nano untuk membuka file app.js

vim app.js

11. Masukkan kode berikut ini dan terakhir untuk menyimpan file dengan tekan tombol exc dan tuliskan :wq dan enter:

var express = require('express');
var app = express();
// Routes
app.get('/expressjs', function(req, res) {
res.send('Hello World, ini expressJS');
});
// Listen
var port = process.env.PORT || 3000;
app.listen(port);
console.log('Listening on localhost:'+ port);

12. Restart application nodeJS terlebih dahulu setelah itu dapat dicoba akses di browser anda, jika berhasil maka akan seperti dibawah ini:
expressjs4

CodeIgniter – No input file specified error

Dalam kasus tertentu web framework CodeIgniter dapat mengalami masalah “no input file specified” jika anda berusaha menggunakan SEO URL, masalah ini diantaranya dapat ditemukan pada server yang menggunakan apache + fcgi/cgi, oleh karena itu diperlukan sedikit modifikasi pada file .htaccess dengan menambahkan “?” pada konteks “index.php” sehingga akan menjadi:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]