Rumahweb Journal
opengraph - WordPress Security : Mengamankan Password Dengan bcrypt

Cara Mengamankan Password WordPress Dengan bcrypt

Keamanan adalah salah satu faktor penting yang harus diperhatikan oleh pemilik website. Beberapa langkah yang bisa Anda ambil untuk meningkatkan keamanan website termasuk menggunakan password yang kuat, mengaktifkan autentikasi dua faktor (2FA) saat login, hingga menggunakan metode bcrypt. Dalam artikel ini, kami akan menjelaskan tentang apa itu bcrypt beserta cara mengamankan password WordPress dengan metode bcrypt.

Secara default, WordPress menggunakan metode hash MD5 untuk mengamankan password WordPress. Namun, beberapa sumber penelitian keamanan melansir bahwa kemampuan MD5 dalam melindungi data terbilang belum cukup aman dari metode pembalikan atau reversing.

Untuk mengatasi hal ini, WordPress mencoba menerapkan kombinasi tambahan seperti MD5 dan phpass untuk melakukan hash password. Tujuanya, agar password WordPress anda lebih sudah untuk dilakukan reversing oleh para peretas.

Cara kerja hashing WordPress

Fungsi inti wp_hash_password WordPress menggunakan framework phpass dan delapan tingkatan hashing berbasis MD5. Fungsi wp_hash_password menggunakan framework phpass untuk menggabungkan key stretching dengan delapan pass MD5 untuk menghasilkan algoritma hashing yang sangat bagus. Namun, pada kenyataannya hal tersebut belum cukup aman.

Password stored dengan menggunakan sistem enkripsi MD5 WordPress adalah metode sederhana. Namun, itu sangat berisiko. Jika peretas menemukan kunci hashing, mereka dapat membalikkan semua kata sandi kembali ke teks.

Apa itu bcrypt?

Bcrypt merupakan fungsi hashing kata sandi yang dirancang berdasarkan cipher Blowfish. Fungsi bcrypt merupakan algoritma hash password dasar untuk OpenBSD dan sistem lain termasuk beberapa distribusi Linux seperti SUSE Linux, namun dapat diimplementasikan pada bahasa pemrograman seperti PHP sehingga dapat diaplikasikan pada WordPress.

Promo Hosting Murah Rumahweb

Pada panduan kali ini, Rumahweb akan memberikan solusi mengamankan password WordPress agar lebih aman dengan menggunakan bcrypt.

Catatan:
  • Pengujian pada WordPress versi terbaru, 5.7-ID dan
  • Menggunakan tool milik tim Roots dengan lisensi MIT.
  • Telah dimodifikasi oleh penulis sesuai core WordPress pengujian.

Pemasangan script plugin

Pada langkah awal, Anda wajib membuat folder khusus dengan nama mu-plugins didalam folder wp-content. Mu-plugin merupakan folder manual plugin yang dimaksudkan agar fungsi tombol seperti non-aktifkan/hapus plugin tidak dapat digunakan melalui menu plugins dashboard admin.

Setelah folder mu-plugins dibuat, silahkan Anda buat lagi satu file PHP dengan nama bcrypt.php dengan isi skrip dibawah:


<?php 

/*
Possible algorithms: bcrypt $2*$, Blowfish (Unix)
*/

if ( version_compare( phpversion(), '5.6', '>=' )
    && ! function_exists( 'wp_check_password' )
    && ! function_exists( 'wp_hash_password' )
    && ! function_exists( 'wp_set_password' )
) :
/*
Prefix hash md5 = $P$
*/
define( 'WP_OLD_HASH_PREFIX', '$P$' );

function wp_check_password( $password, $hash, $user_id = '' ) {

    if ( 0 === strpos( $hash, WP_OLD_HASH_PREFIX ) ) {
        global $wp_hasher;

        if ( empty( $wp_hasher ) ) {
            require_once( ABSPATH . WPINC . '/class-phpass.php' );

            $wp_hasher = new PasswordHash( 10, true );
        }

        $check = $wp_hasher->CheckPassword( $password, $hash );

        if ( $check && $user_id ) {
            $hash = wp_set_password( $password, $user_id );
        }
    }

    $check = password_verify( $password, $hash );

    return apply_filters( 'check_password', $check, $password, $hash, $user_id );
}

function wp_hash_password( $password ) {

    $options = apply_filters( 'wp_hash_password_options', [] );

    return password_hash( $password, PASSWORD_DEFAULT, $options );
}

/*
function wordpress_hash_password( $password ) {
 require_once( '/path/to/wp-includes/class-phpass.php' );
 $wp_hasher = new PasswordHash( 8, TRUE );
 $hashed_password = $wp_hasher->HashPassword( $password );
 return $hashed_password;
{
*/

function wp_set_password( $password, $user_id ) {

    global $wpdb;

    $hash = wp_hash_password( $password );

    $wpdb->update( $wpdb->users, [ 'user_pass' => $hash, 'user_activation_key' => '' ], [ 'ID' => $user_id ] );
    wp_cache_delete( $user_id, 'users' );

    return $hash;
}

endif;

File bcrypt.php yang telah Anda buat, silahkan disimpan dalam folder mu-plugins.

Pada tahap ini telah selesai, kemudian untuk memastikan plugin telah aktif, dapat dicek melalui menu plugin dashboard admin.

install plugin untuk wordpress security
Menu Plugin

Pada gambar diatas, silahkan klik “Harus-Gunakan” untuk melihat plugin bcrypt yang terpasang dan akan terlihat seperti gambar dibawah.

install plugin bcrypt di wordpress

Menjalankan hash Bcrypt

Setelah mengikuti beberapa tahapan diatas, proses hashing tidak langsung dapat diterapkan sebelum Anda mengaplikasikannya secara manual.

Untuk memastikannya, Anda perlu mengakses database melalui phpmyadmin atau command line dan akan melihat algoritma hashing $P$ pada table users. Contoh pada gambar dibawah

ubah tipe password di wordpress
Sebelum bcrypt

Gambar diatas, terlihat password yang dihash masih menggunakan tipe MD5.

Untuk mengubahnya menjadi bcrypt, silahkan Anda logout dashboard WordPress dan kemudian login kembali ke akun usernya. Berikut tampilan setelah re-login:

mengamankan password wordpress dengan bcrypt
Setelah bcrypt

Perubahan type hashing menjadi bcrypt akan menjadi permanen, hal ini berlaku otomatis untuk users baru yang membuat akun pada web WordPress. Sedangkan untuk user lama, hanya perlu re-login.

Demikian artikel kami tentang cara mengamankan password WordPress dengan metode bcrypt, semoga bermanfaat.

Bermanfaatkah Artikel Ini?

Klik bintang 5 untuk rating!

Rating rata-rata 4.9 / 5. Vote count: 10

Belum ada vote hingga saat ini!

Kami mohon maaf artikel ini kurang berguna untuk Anda!

Mari kita perbaiki artikel ini!

Beri tahu kami bagaimana kami dapat meningkatkan artikel ini?

VPS Alibaba

Fredric Lesomar

I am an ameteur programer and cybersecurity enthusiast. Love much, mother Python language, machine learning and You!