Thursday, May 28, 2015

Meningkatkan keamanan WordPress dengan htaccess

.htaccess adalah sebuah file yang berisi perintah-perintah yang digunakan pada web server apache. Dengan .htaccess, kita dapat memproteksi directory atau file, mengubah asosiasi ekstensi dan handler, redirect halaman, dll. Namun pada artikel ini, saya hanya membahas tentang proteksi saja, khususnya proteksi directory/file pada wordpress.
Sebelumnya, blog ini sudah lumayan seringkena hack atau deface. File yang dirubah oleh hacker tersebut hampir semua sama yaitu file index.php yang terdapat pada folder public_html, dan file-file lain (khususnya file index.php) yang terdapat pada folder wp-admin, wp-include, dan wp-content. Nah dari situlah awalnya saya mencari informasi tentang file .htaccess.
Berikut file .htaccess yang dapat digunakan (sebelum memulai, backup dahulu file htaccess anda):

1. .htaccess untuk wp-admin

Terdapat 2 cara untuk memproteksi foldeer wp-admin yaitu dengan menggunakan ip dan menggunakan password
  1. Dengan Menggunakan IP
    [php]order deny,allow
    allow from xxx.xxx.xxx.xxx
    deny from all[/php]
    Ket : ganti xxx dengan ip anda. Proteksi dengan menggunakan ip bisa digunakan jika ip komputer anda menggunakan ip statis, namun jika ip-nya dinamis gunakan cara yang kedua
  2. Dengan menggunakan password 
    Pada tahap ini, kita harus membuat 2 buah file, yaitu file htpass.txt dan file .htaccess. Pada file htpass.txt isi dengan bantuan genenrator pada htaccesstool. setelah digenerate simpan dengan nama htpass.txt kemudian letakkan pada sembarang directory (JANGAN letakkan di dalam directory public_html)
    Setelah file htpass nya dibuat lalu buat htaccess yang diletakkan di dalam folder wp-admin  dengan isi :[php]ErrorDocument 401 default
    AuthName "Authentication Area"
    AuthUserFile /home/…/…/htpass.txt
    AuthGroupFile /dev/null
    AuthType basic
    require user zzz
    <Files admin-ajax.php>
    Order allow,deny
    Allow from all
    Satisfy any
    </Files>
    [/php]
    Ket : AuthName : isi bebas,  require user : isi dengan nama username anda, AuthUserFile : isi dengan path htpass.txt
    jika berhasil maka ketika ketik yourdomain.com/wp-admin akan muncul :
    auten
Lokai File : Letakkan htaccess-nya di dalam folder wp-admin

2. .htaccess untuk wp-include dan wp-content

[php]Order Allow,Deny
Deny from all
<Files ~ ".(css|jpe?g|png|gif|js)$">
Allow from all
</Files>
[/php]
ket: perintah diatas digunakan untuk membatasi akses pada wp-include dan wp-content kecuali ketika user mengakses file dengan ekstentsi css|jpe?g|png|gif|js. (jikatampilan blog berubah ketika memasang htaccess ini, hapus htaccess pada folder wp-content).
Lokasi File : Letakkan htaccess-nya di dalam folder wp-include dan wp-content

3. .htaccess untuk folder public_html

Untuk selanjutnta, letakkan script htaccess yang akan kita buat nanti di bawah script
[php]# 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
[/php]
Script untuk melindungi file wp-config.php
[php]# protect wpconfig.php
<Files wp-config.php>
order allow,deny
deny from all
</Files>
[/php]
Script untuk melindungi file .htaccess itu sendiri
[php]
<Files ~ “^.*.([Hh][Tt][Aa])”>
order allow,deny
deny from all
satisfy all
</Files>
[/php]
Script untuk melindungi file dari script injection
[php]# BEGIN protect WordPress from script injections:
Options +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]
# END[/php]
Lokasi File : Letakkan htaccess-nya di dalam folder root atau public_html
Yak cukup sekian file htaccess yang dibuat, mudah-mudahan blog kita terjaga dari tangan-tangan yang jahil, amiin…

http://risnotes.com/2012/10/meningkatkan-keamanan-wordpress-dengan-htaccess/