Cara Menghilangkan Versi WordPress Dengan Lebih Lengkap

WordPress secara otomatis mengeksekusi fungsi wp_generator() setiap kali hook wp_head() dipanggil. Biasanya hook wp_head() terdapat di file header.php tema yang digunakan, tepatnya pada section <head>. Hasil dari eksekusi fungsi wp_generator() adalah menampilkan versi WordPress yang digunakan. Bisa kita lihat melalui Page Source halaman blog kita via web browser. Contoh tampilannya seperti ini :

<meta name="generator" content="WordPress 3.4" />

Informasi versi WordPress yang digunakan ini bisa dimanfaatkan oleh para hacker untuk menyerang blog kita. Kenapa? karena tiap versi WordPress mempunyai celah keamanan yang berbeda-beda sehingga perlu teknik yang berbeda untuk mengeksploitasinya, informasi ini tentu berguna untuk para hacker karena bisa digunakan sebagai bahan awal untuk menyerang.

Cara Menghilangkan Versi WordPress

1. Cara Pertama

Lokasi fungsi enqueue wp_generator() ini bisa kita lihat pada /wp-includes/default-filters.php tepatnya pada baris 208.

wp_generator Enqueue Script

Untuk menonaktifkan fungsi ini caranya dengan mengganti perintah dari yang sebelumnya:

add_action( 'wp_head', 'wp_generator' );

menjadi

remove_action( 'wp_head', 'wp_generator' );

Cara ini sudah pernah saya coba dan berhasil. Tetapi cara ini tentu TIDAK DISARANKAN karena akan selalu beresiko jika kita mengedit core WordPress.

Cara yang yang lebih baik dan lebih aman tetapi mendapatkan hasil yang sama dengan penggunaan cara di atas adalah dengan memasukkan fungsi berikut ke dalam file functions.php tema yang kita gunakan:

remove_action( 'wp_head', 'wp_generator' );

Lebih mudah bukan? :) (kalau tahu lebih mudah, kenapa saya beritahu cara yang sebelumnya ya? :mrgreen:) Silakan coba lihat hasilnya, informasi versi WordPress yang digunakan sudah tidak muncul lagi bukan?

2. Cara Kedua

Oke sekarang kita coba buka Feed blog kita di browser. Contohnya alamat Feed blog saya adalah http://rachmadin.com/feed/. Setelah itu coba lihat Page Source nya. Lho, ternyata masih ada informasi yang menampilkan versi WordPress yang digunakan??? Contohnya tampilannya seperti di bawah ini :

<generator>http://wordpress.org/?v=3.4</generator>

Jadi cara pertama tidak ampuh dong? Berdasarkan pengalaman saya, kekurangan dari penggunaan cara pertama adalah tidak bisa menghilangkan versi WordPress yang tampil pada Feed blog. Bagaimana cara menghilangkannya? Caranya adalah dengan memasukkan fungsi berikut ke dalam file functions.php tema yang kita gunakan:

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

Oke, coba kita lihat lagi Page Source feed blog kita, voila informasi versi WordPress yang digunakan sudah tidak muncul lagi bukan? :)

Cara Menghilangkan Versi WordPress yang Muncul Pada Enqueue Script

Coba kita buka halaman login blog kita, contohnya http://contoh.com/wp-login.php (kalau halaman loginnya masih di file itu ya) dan lihat Page Source nya. Perhatikan di baris atas ada baris perintah seperti yang terlihat pada gambar di bawah.

Versi WordPress Pada Script
Gambar 1. Versi WordPress Pada Script

Di situ terlihat versi WordPress yang digunakan. Lho, padahal sudah menggunakan cara pertama atau yang kedua tadi, tetapi masih bisa terlihat juga ya versi WordPress nya? Bisa terjadi seperti itu karena WordPress menggunakan fungsi wp_enqueue_script(); untuk me-load JavaScript ke halaman situs dan wp_enqueue_style(); untuk me-load file CSS ke halaman situs. Dengan menggunakan fungsi wp_enqueue_script(); dan wp_enqueue_style(); secara otomatis akan menambahkan string versi WordPress yang digunakan pada script yang di-load. Cara menghilangkannya adalah dengan memasukkan fungsi berikut ke dalam file functions.php tema yang kita gunakan:

function remove_script_version( $src ) {
  if ( strpos( $src, 'ver=' ) )
    $src = remove_query_arg( 'ver', $src );
    return $src;
}
add_filter( 'style_loader_src', 'remove_script_version', 9999 );
add_filter( 'script_loader_src', 'remove_script_version', 9999 );

Sekarang lihat hasilnya, sudah hilang bukan? :)

Versi WordPress yang Sudah Hilang Pada Script
Gambar 2. Versi WordPress yang Sudah Hilang Pada Script

Tentunya, cara meningkatkan keamanan blog WordPress kita dari serangan hacker tidak hanya sekedar menghilangkan atau menghapus versi WordPress yang muncul pada halaman blog, tapi minimal dengan menerapkan cara di atas akan sedikit menyusahkan para hacker yang ingin mencoba mengeksploitasi blog kita. Semoga bermanfaat.

Sumber:

Faisal Rachmadin
Faisal Rachmadin / Night Surfer. Social Media Disorder. Musicalizer. Computerholic. ROMANISTI ~ Vincere o perdere, Roma rimangono sempre nel mio cuore. AS Roma per Sempre.

Comments (26)

  1. kalau cara pertama yang remove_action( 'wp_head', 'wp_generator' ); di theme nya AJ Clarke yang sudah dimasukkan fungsi tersebut. Tapi untuk cara yang kedua dan berikutnya belum saya terapin mas. Ini baru tau caranya dari blognya mas Faisal hehehe.
    Coba dulu ah :)

    • Oya? Lengkap juga ternyata tema buatan si AJ ini. Silakan dicoba mas, jangan lupa dicobanya di Localhost dulu, mencegah hal-hal yang tidak diinginkan hehehe

      Anyway, di blognya AJ ada giveaway tema premium dia yang baru mas. Barangkali mas Ichink berminat.

      • Tapi tidak semua ada sih mas, hehe.
        Oya aq dah nyoba yang ngilangin versi WP di page source feed, tapi tetep masih ada saja pas dicek. Mungkin ada yang salah ato gak support ma themenya yah?

        • Saya juga pernah kaya gitu mas. Setau saya itu karena masalah cache blog atau browsernya. Coba di-clear-in dulu mas cache blog sama browsernya, nanti dicek lagi. Anyway, tadi saya coba cek di feednya, udah ilang kok mas :)

      • Ya ga boleh dong..ini vital banget klo theme yang di submit ke trac wp_head harus lengkap ga boleh kurang.
        Dan itu harus di atas head penutup.

        Kurang sedikit sudah pasti ga di aprove.

        • Oh berarti yang boleh modifikasi wp_head sih cuma bagian pengguna theme nya aja ya bang? Btw selamat sekali lagi bang, tema Amdhas udah masuk directory. Tadi sempet nyoba make, ternyata fiturnya bener-bener hebat. Logical Element nya bener-bener great. Congrats untuk theme nya.

  2. benar-benar lengkap tutorialnya, hanya saja cara ini pada akhirnya kurang menghargai WP sebagai developer. tapi kalau buat web company cara ini memang maknyus, biar sibos nggak tau :D

  3. wah baru tahu saya mas untuk cara yg kedua, hehehehe…. selama ini hanya menggunakan cara yg pertama saja, harus segera diperbaiki ini, hehehe…. terimakasih mas Faisal :)

  4. wah baru ngerti, ternyata bisa ngapus enquery juga. padahal biasanya hanya pake cara pertama atau klo gak gitu pake slash echo di general template.
    thanks gan..

  5. assalamualaikum kang, saya mau bertanya bagaimana cara menghilangkan meta wordpress seperti gambar dibawah ini
    sekarang saya memakai tema ifeature

    mohon bantuannya kang
    terimakasih

    saya sudah kirim gambarnya via facebook akang, mohon dibuka

Tinggalkan Balasan

Alamat surel Anda tidak akan dipublikasikan. Isian wajib ditandai *

Anda dapat memakai tag dan atribut HTML ini: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>