Lompat ke konten Lompat ke sidebar Lompat ke footer

Cara Meningkatkan Keamanan WordPress dengan Menerbitkan Header HTTP yang Dapat Digunakan untuk Mencegah Eksploitasi Umum

 Standar Web saat ini menetapkan beberapa cara untuk membantu mencegah kerentanan keamanan yang membahayakan pengguna situs Web.

Beberapa cara tersebut termasuk menggunakan header HTTP tertentu sebagai bagian dari respons server Web ke browser yang mengakses situs Web.

Baca artikel ini untuk mempelajari bagaimana Anda dapat meningkatkan keamanan situs Web yang menggunakan WordPress dengan membuat plugin Anda sendiri yang mengirimkan header HTTP yang dimaksudkan untuk melindungi pengguna situs Web Anda dari eksploitasi keamanan.

Dalam artikel ini Anda akan mempelajari tentang:

Pengantar Header HTTP Terkait Keamanan

Apa Saja Header HTTP Aman yang Harus Anda Gunakan di WordPress Anda

Cara Mengirim Header HTTP Penting dengan Halaman WordPress

Cara Menggunakan Kelas PHP untuk Mengatur Lebih Baik Pengiriman HTTP Header Aman di WordPress

Cara Mengunduh Wordpress Secure Headers Helper atau Menginstalnya dengan PHP Composer

Pengantar Header HTTP Terkait Keamanan

Pengantar Header HTTP Terkait Keamanan

Banyak pengguna dan pengembang yang menjadi bagian dari komunitas WordPress akhirnya menyadari bahwa memiliki sertifikat SSL memberi kita lebih dari sekadar ikon "gembok" di browser. Konfigurasi keamanan server Web bisa lebih berguna daripada hanya mengatur sertifikat SSL.

Anda mungkin pernah mendengar tentang header terkait keamanan, seperti  X-Frame-Options  atau  Expect-CT . Tapi apa tajuk itu? Dan apa cara terbaik untuk mengkonfigurasinya?

Singkatnya, semua tajuk itu memungkinkan kita membuat aturan untuk permintaan HTTP dengan cara yang memungkinkan untuk menghindari jenis serangan tertentu.

Header X-Frame-Options, misalnya, memberikan perlindungan clickjacking, sementara  Strict-Transport-Security  melindungi dari serangan  main-in-the-middle  seperti  serangan downgrade protokol  dan  pembajakan cookie .

Apa Saja Header HTTP Aman yang Harus Anda Gunakan di WordPress Anda

Jika situs web atau aplikasi Anda menggunakan sertifikat SSL, Anda harus menggunakan dan mengonfigurasi header keamanan yang mungkin mencegah aplikasi Anda dari beberapa jenis serangan.

Tetapi sebelum mendalami pengkodean, mari kita rekap apa saja header-header itu, dan alasan untuk menggunakan masing-masing header itu. Berikut beberapa informasi dari situs:  https://securityheaders.com/ .

X-Frame-OptionsX-Frame-Options  memberi tahu browser apakah Anda ingin mengizinkan situs Anda dibingkai atau tidak. Dengan mencegah peramban membingkai situs Anda, Anda dapat bertahan dari serangan seperti pembajakan klik.
X-Content-Type-OptionsX-Content-Type-Options  menghentikan browser untuk mencoba MIME-sniff tipe konten dan memaksanya untuk tetap menggunakan tipe konten yang dideklarasikan. Satu-satunya nilai yang valid untuk header ini adalah X-Content-Type-Options: nosniff.
X-XSS-ProtectionX-XSS-Protection  menetapkan konfigurasi untuk Auditor XSS yang terpasang di browser lama. Nilai yang direkomendasikan adalah X-XSS-Protection: 1; mode = block tetapi Anda sekarang harus melihat  Kebijakan Keamanan Konten  sebagai gantinya.
Kebijakan PerujukKebijakan Perujuk  adalah tajuk baru yang memungkinkan situs mengontrol berapa banyak informasi yang disertakan browser dengan navigasi keluar dari dokumen dan harus disetel oleh semua situs.
Ketat-Transportasi-KeamananHTTP Strict Transport Security  adalah fitur luar biasa untuk mendukung situs Anda dan memperkuat implementasi TLS Anda dengan meminta Agen Pengguna untuk menerapkan penggunaan HTTPS.
Harapkan-CTExpect-CT  memungkinkan situs untuk menentukan apakah mereka siap untuk persyaratan Chrome mendatang dan / atau memberlakukan kebijakan CT mereka.
Kebijakan-Keamanan-KontenKebijakan Keamanan Konten  adalah ukuran efektif untuk melindungi situs Anda dari serangan XSS. Dengan memasukkan sumber konten yang disetujui ke daftar putih, Anda dapat mencegah browser memuat aset berbahaya. Analisis  kebijakan ini secara lebih rinci. Anda dapat mendaftar untuk mendapatkan akun gratis di  URI Laporan  untuk mengumpulkan laporan tentang masalah di situs Anda.

Karena kita sebagian besar berbicara tentang WordPress di sini, beberapa dari header HTTP tersebut dapat dikonfigurasi dengan nilai yang jelas. Dengan kata lain, untuk beberapa tajuk tersebut, nilai pada dasarnya akan sama untuk hampir semua situs atau aplikasi WordPress.

Jadi, jika kita berpikir untuk membuat skrip untuk mengimplementasikannya, bagian dari header dapat dianggap konstan. Dengan pemikiran tersebut, mari beralih ke langkah berikutnya: class atau library untuk menyetel header dasar secara otomatis (untuk yang biasanya konstan) dan mengonfigurasi sisanya.

Cara Mengirim Header HTTP Penting dengan Halaman WordPress 

Pengembang yang ingin memperluas kemampuan WordPress dapat menggunakan dua jenis hook untuk menyertakan atau mengelola header HTTP: aksi  send_headers  dan filter  wp_headers .

Secara teori, header HTTP dapat ditambahkan dan dikelola menggunakan salah satu kait jenis ini. Namun, kami cenderung menggunakan lebih banyak pada tindakan, daripada filter.

Perbedaan kode yang perlu kita gunakan dengan setiap jenis hook itu sederhana. Jika Anda memilih filter, itu berarti Anda perlu menggunakan fungsi yang meneruskan satu argumen,   array $ headers , menambah atau mengubah elemen dalam array itu dan mengembalikan array baru sebagai hasilnya. Anda juga harus memeriksa apakah permintaan saat ini dikirim melalui HTTPS.

if (! empty($_SERVER['HTTPS'])) {
  function add_secure_header($headers) {
    $headers['strict-transport-security'] = 'max-age=31536000; includeSubDomains';
    return $headers;
  }

add_filter('wp_headers', 'add_secure_header');
}
PHP

Efek yang sama dapat dicapai dengan menggunakan tindakan WordPress. Namun, argumen apa pun tidak perlu diteruskan ke fungsi callback. Fungsi itu tidak memiliki nilai hasil. Dalam kasus ini, kodenya akan terlihat seperti ini:

if (! empty($_SERVER['HTTPS'])) {
  function add_secure_headers() {
    header( 'Strict-Transport-Security: max-age=10886400' );
  }
  add_action( 'send_headers', 'add_secure_headers' );
}
PHP

Mudah, ya? Tambahkan semua tajuk dan nilai masing-masing, kaitkan fungsi Anda menggunakan tindakan atau filter dan Anda selesai. Tetapi bisakah itu lebih otomatis dan, pada saat yang sama, menggunakan gaya kode PHP yang lebih baik?

Cara Menggunakan Kelas PHP untuk Mengatur Lebih Baik Pengiriman HTTP Header Aman di WordPress

Idenya sederhana. Kita dapat menggunakan kelas untuk menambahkan semua header aman yang jelas secara otomatis, serta mengubah nilainya atau menambahkan header baru.

Saya telah menerapkan pendekatan ini seperti ini. Untuk bagian pertama kelas kami, kami menambahkan variabel yang menampung semua header dan nilai dan sudah membawa beberapa di antaranya secara default.

Kelas menambahkan pengait ke  tindakan send_headers WordPress  Kelas memiliki fungsi untuk mengatur header selain yang sudah terdaftar. Itu juga dapat mengembalikan daftar semua header menggunakan variabel  $ toApply .

class Headers {

    public $toApply = [
    	'X-Frame-Options' => 'SAMEORIGIN',
    	'X-Content-Type-Options' => 'nosniff',
    	'X-XSS-Protection' => '1; mode=block',
    	'Referrer-Policy' => 'no-referrer-when-downgrade',
    	'Strict-Transport-Security' => 'max-age=31536000; includeSubDomains',
    ];
    //...

    public function set(string $header, string $value) {
    	$this->toApply[$header] = $value;
    }

    public function list() {
    	return $this->toApply;
    }
}
use WPH\Security\Headers; require __DIR__ . '/vendor/autoload.php'$sec_headers = new Headers(); $sec_headers->set('Content-Security-Policy''connect-src "self"');
PHP

Logika ini memungkinkan Anda membuat solusi sederhana untuk menambahkan header HTTP ke situs Web mana pun. Satu-satunya hal yang Anda perlukan adalah tautan ini terbuka di jendela baru)

elas ini akan diperbarui di masa mendatang untuk memungkinkan
konfigurasi yang lebih baik dari header aman satu per satu. Beberapa
perbaikan terkait cookie juga harus diterapkan pada akhirnya.
Periksa repo Github, ada baiknya melihat pendekatan ini, karena beberapa baris 
dan detail tersebut dapat diatur di WordPress hanya dengan kode di bawah 
Cara Mengunduh Wordpress Secure Headers Helper atau Menginstalnya dengan PHP Composer
Kelas ini dapat diunduh dalam arsip terkompresi dengan membuka halaman unduhan . kmbItu juga dapat diinstal menggunakan alat PHP Composer dengan mengikuti petunjuk di halaman

Suber artikel 

phpclasses 

Archives by Carlos Artur Curvelo da Matos 

wp-helpers.com

Posting Komentar untuk "Cara Meningkatkan Keamanan WordPress dengan Menerbitkan Header HTTP yang Dapat Digunakan untuk Mencegah Eksploitasi Umum"