11 Langkah untuk keamanan WordPress Anda

Photo by John Salvino on Unsplash

Hallo Guys.. Mangcoding akan memberikan tutorial langkah demi langkah untuk melindungi blog anda, tetapi sebelum dimulai, ada beberapa hal sederhana yang harus Anda ketahui :

  • Selalu perbarui blog, plugin, dan tema WordPress Anda, karena versi baru sering kali memiliki perbaikan keamanan yang lebih bagus.
  • Gunakan kata sandi yang sangat kuat (jangan gunakan «12345» atau «qwerty»!)
  • Sambungkan situs Anda hanya menggunakan klien SFTP
  • Install program antivirus di PC Anda

Langkah 1 – Melakukan Pencadangan

Hal pertama yang harus Anda lakukan adalah mem-backup database Anda. Anda dapat mencadangkannya secara manual di phpMyAdmin dengan membuka tab Ekspor, Perhatikan gambar dibawah!

mangcoding export db

Cara lainnya adalah dengan menggunakan plugin WordPress, yang memungkinkan Anda membuat cadangan basis data. Ada banyak plugin yang seperti itu tetapi hari ini Mangcoding menyarankan Anda untuk menggunakan BackWPUp.
Setelah membuat cadangan basis data, Anda dapat membuat cadangan file tema dan folder unggahan. Dan Anda bisa menggunakan SFTP misalnya.

File inti dan plugin WordPress tidak perlu dicadangkan, karena Anda dapat mengunduh WordPress versi terbaru dan menginstal plugin terbaru juga.

 

Langkah 2 – Chmod

Anda harus menyiapkan izin berikut untuk file dan folder WordPress Anda :

mangcoding directory

Untuk mengatur hak chmod Anda dapat menggunakan klien SFTP Anda.

 

Langkah 3 – Mengamankan area admin

Perlindungan lapis kedua

Ini adalah perlindungan yang sangat kuat tetapi Mangcoding tidak merekomendasikannya ketika:

  • Anda menggunakan admin-ajax.php handler di situs web Anda
  • Anda bukan satu-satunya penulis di blog

Jadi, ini ada 2 cara untuk mengamankan website anda yaitu dengan kata sandi atau mengamankan dengan alamat IP.
Cara pertama kita mulai dengan perlindungan kata sandi tambahan. Anda perlu membuat dua file dalam wp-admin direktori – .htaccess dan .htpasswd
Konten .htaccess file:

AuthType Basic
# Welcome message
AuthName "Hi, Dude!"
# Full path to .htpasswd file
AuthUserFile /home/rudrastyh.com/public_html/wp-admin/.htpasswd
require valid-user

Yang kedua adalah File .htpasswd, ini harus berisi nama pengguna dan kata sandi, masing-masing pasangan di baris berikutnya. Anda dapat membuat kata sandi yang disandikan di halaman ini .
Contoh isi .htpasswd file:

user1:$apr1$lw9zPE5c$uTNLHKL6LTk4M4awpGHlZ0
user2:$apr1$xpogQMCP$kC9GZ8ufEMfABa5NfjvGP1
Memblokir area admin berdasarkan alamat IP

Jika Anda tidak ingin masuk admin area dua kali, Anda bisa memblokirnya dengan alamat IP. Yang Anda butuhkan hanyalah memasukkan file ke dalam /wp-admin/ direktori .htaccess dengan konten berikut:

satisfy any
order deny,allow
deny from all
allow from 11.178.207.255
#you can specify another lines with allowed IP addresses
require valid-user

Langkah 4 – Mengamankan dari serangan brute force

Mengubah pesan kesalahan default pada saat gagal masuk.

Ketika Anda gagal, WordPress akan memberitahu kepada Anda, salah memasukkan nama pengguna atau kata sandi secara default. Hal ini dapat mempermudah peretas untuk memulai serangan brute force. Jadi, mereka bisa mendapatkan kata sandi Anda jika mereka mengetahui login Anda.

Ada dua pesan kesalahan default di WordPress. Ketika nama pengguna tidak valid :

mangcoding error user

Dan Error ketika Kata Sandinya salah :

mangcoding error password

Ada cara mudah yang memungkinkan Anda membagi dua pesan kesalahan ini menjadi satu, misalnya “Kesalahan: Nama pengguna atau kata sandi. Anda bisa Masukkan kode ini ke dalam functions.php file Anda.

function remove_default_login_errors() {
    return 'Error: username or password is incorrect.';
}


add_filter('login_errors', 'remove_default_login_errors');

Dan hasilnya seperti gambar dibawah

 

mangcoding error login

Mengubah nama pengguna admin default

Semua orang tahu nama pengguna admin default WordPress. Tentu saja Para peretas juga mengetahuinya. Jadi, silahkan gunakan fungsi dibawah, fungsi ini memungkinkan Anda mengubah login pengguna sesuai keinginan Anda.

function true_change_username($new_username, $user_id = 1) {
    global $wpdb;
    $wpdb->update(
        $wpdb->prefix . 'users',
        array('user_login' => $new_username),
        array('ID' => $user_id),
        array('%s'),
        array('%d')
    );
}

$new_username

(string) nama pengguna baru
$user_id
(bilangan bulat) ID pengguna yang ingin Anda ubah nama penggunanya, secara default – pengguna admin dengan ID = 1

Selanjutnya Masukkan fungsi ini ke situs web Anda dan kemudian jalankan.

true_change_username( 'superadmin' ); // this will change default admin username
Cara menyembunyikan nama pengguna dari kelas komentar

Jika Anda telah mengubah nama pengguna, tetapi bagaimana jika ini tidak membantu? Silahkan perhatikan gambar dibawah, ini adalah kode HTML dari komentar pengguna di blog :

mangcoding error user code

Gambar diatas adalah nama pengguna. Dan ketika Anda masuk sebagai admin dan memposting komentar, peretas dapat dengan mudah mendapatkan login Anda. Bagaimana cara mencegahnya?

Cara pertama adalah tidak menggunakan akun admin untuk berkomentar di blog. Cara kedua dan terbaik adalah dengan mengubah atau menyembunyikan nama pengguna admin dari atribut kelas komentar dengan memasukkan kode berikut ke dalam functions.php file tema Anda.

function true_username_css_class($classes) {
    foreach ($classes as $key => $class) {
        if (strstr($class, "comment-author-superadmin")) {
            // you should change superadmin to your current username
            $classes[$key] = 'comment-author-admin';
            // if you want to cheat hackers, or just comment-admin, if you want to completely hide username from the class
        }
    }
    return $classes;
}


add_filter('comment_class', 'true_username_css_class');

Jika Anda ingin menghapus semua nama pengguna dari kelas komentar:

function true_completely_remove_css_class($classes) {
    foreach ($classes as $key => $class) {
        if (strstr($class, "comment-author-")) {
            unset($classes[$key]);
        }
    }
    return $classes;
}


add_filter('comment_class', 'true_completely_remove_css_class');
Batasi jumlah upaya login

Ada banyak plugin yang bagus untuk membatasi Login, salah satunya adalah simple Login LockDown. Plugin ini menonaktifkan fungsi login untuk rentang IP tertentu, jika lebih dari jumlah percobaan terdeteksi dari rentang ini dalam waktu singkat.

Langkah 5 – Mengamankan file konfigurasi

Maksudnya pada file wp-config.php File ini berisi nama pengguna dan kata sandi basis data, jadi harus dilindungi juga. Bagaimana cara melakukannya? Cukup pindahkan situs web Anda wp-config.php ke direktori di atas folder situs web Anda.

Anda juga dapat melindunginya dengan mengatur pada .htaccess, letakkan kode dibawah ini pada .htaccess file yang terletak di direktori yang sama dengan wp-config.php.

 

order allow,deny
deny from all

Langkah 6 – Nonaktifkan editor file

Jika seseorang memiliki akses ke dasbor situs web Anda sebagai administrator, ia mungkin juga dapat mengedit tema situs web dan file plugin. Untuk mencegah hal tersebut, Anda harus menambahkan kode baris berikut ke dalam wp-config.php file.

 

define('DISALLOW_FILE_EDIT', true);

Setelah Anda melakukan itu, editor akan hilang sama sekali.

 

Langkah 7 – Mengubah awalan basis data

Jika Anda belum menginstal blog Anda, Anda dapat mengatur awalan basis data dalam proses instalasi.

mangcoding table

Jika Anda sudah menginstal blog WordPress – ikuti petunjuk ini.
Pada awalnya, Anda harus membuka wp-config.php file Anda dan mengubah baris ini :

 

$table_prefix  = 'wp_';

 

Misalnya untuk ini :

$table_prefix  = 'new1234_';

 

Setelah itu Anda harus menjalankan beberapa kueri SQL. Anda dapat melakukannya di tab SQL phpMyAdmin :

RENAME TABLE wp_commentmeta TO new1234_commentmeta;
RENAME TABLE wp_comments TO new1234_comments;
RENAME TABLE wp_links TO new1234_links;
RENAME TABLE wp_options TO new1234_options;
RENAME TABLE wp_postmeta TO new1234_postmeta;
RENAME TABLE wp_posts TO new1234_posts;
RENAME TABLE wp_terms TO new1234_terms;
RENAME TABLE wp_term_relationships TO new1234_term_relationships;
RENAME TABLE wp_term_taxonomy TO new1234_term_taxonomy;
RENAME TABLE wp_usermeta TO new1234_usermeta;
RENAME TABLE wp_users TO new1234_users;
UPDATE new1234_options SET option_name = 'new1234_user_roles' WHERE option_name = 'wp_user_roles';
UPDATE new1234_usermeta SET meta_key = 'new1234_capabilities' WHERE meta_key = 'wp_capabilities';

Langkah 8 – Menghapus versi WordPress dari umpan RSS dan dari situs web

Langkah ini bisa jadi sangat penting, terutama jika Anda tidak memperbarui WordPress secara teratur. Itu juga langkah paling sederhana untuk dilakukan. Cukup masukkan kode berikut ke dalam functions.php file Anda:

function remove_wp_version() {
    return '';
}
add_filter('the_generator', 'remove_wp_version');

Langkah 9 – Cegah hotlinking gambar

Hotlinking adalah ketika seseorang mencuri konten website Anda (biasanya gambar) dan menyisipkan link langsung ke website mereka sendiri. Masalahnya adalah mereka tidak hanya mencuri gambar tetapi juga bandwidth Anda.

Dan bagaimana kita dapat mencegah hal ini? Cukup mudah! Akan ada penambahan kode lain untuk file .htaccess. Anda dapat menggunakan .htaccess yang terletak di direktori root situs web Anda, dan juga yang ada di direktori gambar.

 

# this line may already be in the file
RewriteEngine On

# list here the websites with allowed access to your images
# DO NOT FORGET TO SPECIFY YOUR OWN DOMAIN!
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?google\.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?yahoo\.com/.*$ [NC]

RewriteCond %{HTTP_REFERER} !^$ [NC]

# hotlink.png is the image which will be requested instead of your website images
RewriteRule .*\.(jpe?g|gif|bmp|png)$ hotlink.png [L]

Langkah 10 – Lindungi direktori unggahan Anda

Kode ini menolak akses ke file apa pun di direktori kecuali file dengan ekstensi yang diberikan. Jadi, itu juga menonaktifkan file PHP di direktori ini (dan juga di semua direktori turunannya).

#at first we completely disable access to all the files
<FilesMatch ^>
    Order Allow,Deny
    Deny from all
</FilesMatch>
#after that add file extensions you want to allow access
<filesmatch ".(jpg|jpeg|jpe|gif|png|tif|tiff|pdf)$"="">
    Order Deny,Allow
    Allow from all
</FilesMatch>

 

Atau Anda hanya ingin menonaktifkan eksekusi file PHP :

<Files *.php>
    deny from all
</Files>

Mangcoding sarankan Anda untuk melindungi /wp-includes/ direktori juga.

Langkah 11 – Hapus file yang tidak perlu

File pertama yang harus Anda hapus adalah readme.html, terletak di folder root blog Anda. File ini berisi versi WordPress yang Anda gunakan. Ingatlah bahwa peretas dapat menemukan eksploit yang tepat untuk versi WordPress yang tepat.

File lain install.php terletak di /wp-admin/ direktori. Ini adalah skrip instalasi dan juga harus dihapus.
File yang dihapus akan muncul kembali setelah melakukan pembaruan WordPress.

Referensi : Rudrastyh