Setting .htaccess Terbaik untuk Meningkatkan Keamanan WordPress

Best Koding.Com - Setting .htaccess Terbaik untuk Meningkatkan Keamanan WordPress, Keamanan WordPress adalah salah satu faktor yang paling bermasalah

 Best Koding.Com Setting .htaccess Terbaik untuk Meningkatkan Keamanan WordPress, Keamanan WordPress adalah salah satu faktor yang paling bermasalah di antara blogger pemula. Dalam instalasi WordPress tanpa pengawasan, ada beberapa potensi kerentanan yang tidak dijaga. Sebagian besar tutorial instalasi WordPress menjelaskan cara cepat dan mudah untuk menggunakan WordPress dalam hitungan menit. Tapi mereka kehilangan beberapa faktor keamanan penting. Misalnya, penelusuran direktori dan penggunaan nama pengguna 'admin' dianggap sebagai celah keamanan yang serius. Hari ini kita akan melihat 10 cuplikan kode .htaccess yang akan membantu meningkatkan keamanan blog WordPress Anda. Sebelum kita mulai, mari kita lihat sekilas apa itu file htaccess.

Apa itu file .htaccess?

File htaccess adalah file konfigurasi opsional untuk ditafsirkan oleh server web Apache, untuk setiap direktori. Anda dapat menyimpan berbagai pengaturan dalam file tersebut seperti: melindungi direktori dengan kata sandi, memblokir IP, memblokir file atau folder dari akses publik, dll. Secara tradisional, file .htaccess ada di direktori instalasi dasar WordPress. Ini menyimpan struktur permalink secara default.

TIPS: Sebelum memulai tutorial, pastikan untuk mencadangkan file .htaccess saat ini (jika ada) di layanan penyimpanan cloud seperti Dropbox. Ini untuk memutar kembali ke file .htaccess terakhir yang berfungsi, jika cuplikan kode tertentu merusak situs Anda. Mari kita mulai.

1. Blokir Bot Jahat

Salah satu kegunaan terbaik dari file .htaccess adalah kemampuannya untuk menolak beberapa alamat IP untuk mengakses situs Anda. Ini berguna saat memblokir spammer yang dikenal dan sumber lain dari akses yang mencurigakan atau berbahaya. Kodenya adalah:

# Block one or more IP address.
# Replace IP_ADDRESS_* with the IP you want to block


order allow,deny
deny from IP_ADDRESS_1
deny from IP_ADDRESS_2
allow from all

Di mana IP_ADDRESS_1 adalah IP pertama yang ingin Anda cegah untuk mengakses situs Anda. Anda dapat menambahkan IP sebanyak yang Anda inginkan. Apa pun agen pengguna (browser) yang digunakan oleh alamat IP ini, mereka tidak akan dapat mengakses satu file pun dari server Anda. Server web akan secara otomatis menolak semua akses.

2. Nonaktifkan Penjelajahan Direktori

Ini adalah salah satu kelemahan keamanan yang paling dirusak di situs WordPress. Secara default, server web Apache memungkinkan penelusuran direktori. Ini berarti bahwa semua file dan folder di dalam direktori root (terkadang disebut direktori home) dari server web dapat didaftarkan dan dapat diakses oleh pengunjung. Anda tidak menginginkannya karena Anda tidak ingin orang menelusuri unggahan media Anda atau file tema atau plugin Anda.

Jika secara acak saya memilih 10 situs web pribadi atau bisnis yang menjalankan WordPress, 6-8 di antaranya tidak akan menonaktifkan penjelajahan direktori. Ini memungkinkan siapa saja untuk dengan mudah mengendus folder wp-content/uploads atau direktori lain yang tidak memiliki file index.php default. Faktanya, tangkapan layar yang Anda lihat berasal dari salah satu situs klien saya, sebelum saya merekomendasikan perbaikannya. Cuplikan kode untuk menonaktifkan penjelajahan direktori:

# Disable directory browsing
Options All -Indexes

3. Izinkan Hanya File Terpilih dari wp-content

Seperti yang Anda ketahui, folder wp-content berisi paling banyak tema, plugin, dan semua unggahan media Anda. Anda tentu tidak ingin orang mengaksesnya tanpa batasan. Selain menonaktifkan penjelajahan direktori, Anda juga dapat menolak akses semua jenis file, kecuali beberapa. Intinya, Anda dapat membuka blokir file secara selektif seperti JPG, PDF, DOCX, CSS, JS, dll. Untuk melakukannya, rekatkan cuplikan kode ini di file .htaccess Anda:

# Disable access to all file types except the following
Order deny,allow
Deny from all
<Files ~ ".(xml|css|js|jpe?g|png|gif|pdf|docx|rtf|odf|zip|rar)$">
Allow from all
</Files>

Anda harus membuat file .htaccess baru dengan kode tersebut dan menempelkannya di folder konten wp. Jangan tempatkan ini di direktori instalasi dasar – jika tidak maka tidak akan berfungsi. Anda juga dapat menambahkan jenis file apa pun ke dalam daftar dengan menambahkan '|' setelah 'rar'. Daftar di atas berisi file-file yang diperlukan – XML, CSS dan JavaScript, format gambar dan dokumen yang umum, dan akhirnya format arsip yang paling banyak digunakan.

4. Batasi Semua Akses ke wp-include

Folder wp-includes hanya berisi file yang benar-benar diperlukan untuk menjalankan versi inti WordPress – yang tanpa plugin atau tema apa pun. Ingat, tema default masih berada di direktori wp-content/theme. Dengan demikian, tidak ada pengunjung (termasuk Anda) yang memerlukan akses ke konten folder wp-include. Anda dapat menonaktifkan akses menggunakan cuplikan kode berikut ini:

# Block wp-includes folder and files
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>

5. Izinkan hanya Alamat IP Terpilih untuk Mengakses wp-admin

Folder wp-admin berisi file yang diperlukan untuk menjalankan dashboard WordPress. Dalam kebanyakan kasus, pengunjung Anda tidak memerlukan akses ke dasbor WordPress, kecuali mereka ingin mendaftarkan akun. Langkah keamanan yang baik adalah mengaktifkan hanya beberapa alamat IP yang dipilih untuk mengakses folder wp-admin. Anda dapat mengizinkan IP orang yang membutuhkan akses ke dasbor WordPress – editor, kontributor, dan admin lainnya. Cuplikan kode ini hanya mengizinkan IP tetap untuk mengakses folder wp-admin dan menolak akses ke seluruh dunia.

# Limit logins and admin by IP
<Limit GET POST PUT>
order deny,allow
deny from all
allow from 302.143.54.102
allow from IP_ADDRESS_2
</Limit>

Pastikan Anda membuat file .htaccess baru dan menempelkannya di folder wp-admin dan bukan di direktori instalasi dasar. Jika yang terakhir, tidak seorang pun kecuali Anda yang dapat menjelajahi situs Anda – bahkan mesin telusur! Anda tentu tidak menginginkan hal tersebut. Beberapa kerugian dari ukuran ini adalah sebagai berikut:

  • Jika situs Anda mengizinkan atau mempromosikan pendaftaran pengguna baru, hampir tidak mungkin untuk melacak jumlah pengguna. Misalnya di WPExplorer, jika Anda ingin mengunduh tema gratis kami yang keren, maka Anda harus mendaftar.
  • Orang-orang dengan alamat IP dinamis (kebanyakan pengguna broadband ADSL yang menggunakan protokol PPP atau PPPoE) mengalami perubahan IP, setiap kali mereka logout dan login ke ISP mereka. Tentunya tidak praktis untuk melacak semua IP ini dan menambahkannya ke file htaccess.
  • Broadband seluler: Apakah Anda menggunakan 3G atau 4G, alamat IP Anda bergantung pada menara seluler saat ini yang terhubung dengan Anda. Katakanlah Anda sedang bepergian – IP Anda akan terus berubah setiap beberapa mil Anda bergerak dari asalnya. Sekali lagi, melacak file htaccess hampir tidak mungkin.
  • Hotspot Wi-Fi Publik: Menggunakan kredensial saat terhubung ke Internet menggunakan hotspot Wi-Fi publik adalah larangan besar, karena anak kecil dengan perangkat lunak kecil dapat mengekstrak setiap karakter yang Anda ketik. Belum lagi, setiap hotspot Wi-Fi akan memiliki alamat IP yang unik.

Untungnya, semua kelemahan ini (simpan yang pertama), dapat diperbaiki dengan menggunakan VPN. Jika Anda menyetel VPN untuk terhubung hanya menggunakan satu alamat IP, maka Anda bisa menambahkannya ke file htaccess Anda, dan semua masalah Anda akan teratasi.

6. Lindungi wp-config.php dan .htaccess dari semua orang

File wp-config.php berisi kredensial akses paling sensitif dari situs WordPress Anda. Ini berisi nama database dan kredensial akses dan berbagai data penting lainnya, di antara pengaturan lainnya. Dalam keadaan apa pun Anda tidak ingin orang lain melihat file ini. Dan tentu saja, Anda ingin menonaktifkan akses publik ke sumber dari semua keamanan ini – file .htaccess itu sendiri. Anda dapat menonaktifkan akses ke wp-config.php dengan kode berikut ini:

# Deny access to wp-config.php file
<files wp-config.php>
order allow,deny
deny from all
</files>

Untuk menolak akses ke semua file htaccess (ingat beberapa mungkin berada di wp-admin dan folder lain), gunakan potongan kode ini:

# Deny access to all .htaccess files
<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>

7. Tolak Hotlinking Gambar

Salah satu peretasan file .htaccess paling keren, yang satu ini mengirimkan pengikis konten berjalan dengan ekor di antara kaki mereka. Ketika seseorang menggunakan gambar situs Anda, bandwidth Anda dikonsumsi dan seringkali, Anda bahkan tidak dikreditkan untuk itu. Cuplikan kode ini menghilangkan masalah itu dan mengirimkan gambar ini saat hotlink terdeteksi.

# Prevent image hotlinking script. Replace last URL with any image link you want.
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourwebsite.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourotherwebsite.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ http://i.imgur.com/MlQAH71.jpg [NC,R,L]

8. Aktifkan Caching Peramban

Juga dikenal sebagai caching sisi klien, peretasan .htaccess ini dengan mengaktifkan opsi caching browser yang direkomendasikan untuk situs WordPress Anda. Anda juga dapat menggunakannya di proyek lain – situs HTML, dll.

# Setup browser caching
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"
</IfModule>

9. Alihkan ke halaman Maintenance

Saat Anda memigrasikan host web atau melakukan beberapa tugas pemeliharaan, selalu disarankan untuk membuat file HTML "turun untuk pemeliharaan" statis untuk memberi tahu pengunjung Anda bahwa situs web sedang menjalani peningkatan atau operasi pemeliharaan. Cukup buat file maintenance.html (atau nama file lainnya) dan unggah ke direktori instalasi dasar WordPress. Tempel cuplikan berikut di file .htaccess Anda. Setelah operasi selesai, pastikan untuk menghapus atau mengomentari baris-baris ini untuk kembali ke operasi secara keseluruhan. Anda dapat berkomentar dengan menambahkan '#' di awal setiap baris.

# Redirect all traffic to maintenance.html file
RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123
RewriteRule $ /maintenance.html [R=302,L] 

10. Halaman Kustom Error

Anda juga dapat menggunakan file .htaccess untuk mengonfigurasi halaman kesalahan khusus yang mudah digunakan untuk kesalahan seperti 403, 404, dan 500. Setelah Anda menyiapkan halaman kesalahan Anda – katakanlah error.html, unggah ke direktori instalasi WordPress dasar Anda. Kemudian tambahkan cuplikan kode berikut ke file .htaccess Anda untuk mengaktifkan halaman kesalahan khusus:

# Custom error page for error 403, 404 and 500
ErrorDocument 404 /error.html
ErrorDocument 403 /error.html
ErrorDocument 500 /error.html

Kesimpulan:

Hari ini kami telah mempelajari beberapa peretasan htaccess paling keren untuk memperkuat situs WordPress Anda. Saya menyarankan Anda untuk mencoba setiap modul satu per satu sambil mengambil cadangan file .htaccess sebelum dan sesudah menguji setiap modul. Ini karena file .htaccess sangat kritis. Karakter '#' yang hilang atau '' yang salah tempat dapat merusak integritas situs Anda. Jika Anda sering mengakses dasbor WordPress saat bepergian, disarankan untuk tidak mengaktifkan IP selektif ke folder wp-admin Anda.

Apa pendapat Anda tentang posting ini? Apakah menurut Anda ini sepadan dengan kesulitan mengedit file htaccess? Apakah Anda tahu tip keamanan yang lebih baik? Kami akan senang mendengar dari Anda. Silahkan Tinggalkan Komentar di Bawah ini.