Mengonfigurasi header keamanan HTTP di WordPress

Diterbitkan: 2022-02-23

Sebagian besar browser modern mendukung berbagai header keamanan HTTP untuk meningkatkan keamanan situs WordPress Anda, melindungi pengunjung Anda dengan lebih baik dari kelas serangan browser seperti clickjacking, skrip lintas situs, dan serangan umum lainnya, dan bahkan meningkatkan privasi pengunjung situs Anda on line.

Artikel ini memberikan ikhtisar tentang apa itu header keamanan HTTP, menjelaskan cara kerjanya, dan apa cakupannya. Ini juga menjelaskan bagaimana Anda dapat menambahkan header keamanan HTTP ini ke situs web Anda untuk meningkatkan keamanan situs web WordPress Anda.

Apa itu header keamanan HTTP?

Header keamanan HTTP adalah serangkaian header HTTP dipertukarkan antara klien web (browser) dan server web yang digunakan untuk menentukan pengaturan terkait keamanan komunikasi HTTP antara klien web dan server. Mengaktifkan header keamanan di situs WordPress Anda dapat meningkatkan ketahanan situs web Anda terhadap serangan umum, termasuk skrip lintas situs (XSS) dan clickjacking.

Bagaimana header keamanan HTTP dapat meningkatkan keamanan WordPress

Header keamanan HTTP dapat membantu meningkatkan keamanan situs WordPress Anda dengan menginstruksikan browser untuk mengaktifkan berbagai fitur keamanan yang sesuai. Dalam banyak kasus, menerapkan tajuk yang tepat adalah urusan yang rumit dan bahkan mungkin memiliki hasil yang berbeda (atau sama sekali tidak efektif) di browser lama, jadi praktik terbaik adalah mencoba perubahan apa pun dalam lingkungan pengujian atau pementasan sebelum menerapkan perubahan apa pun pada situs WordPress langsung.

Header keamanan HTTP yang paling umum digunakan

Header yang melakukan apa? Mari selami ikhtisar beberapa header keamanan HTTP yang paling penting dan umum digunakan.

Ketat-Transportasi-Keamanan

Header HTTP Strict-Transport-Security menginstruksikan browser untuk menerapkan HTTP Strict Transport Security (HSTS) 2 . Header HSTS menginstruksikan browser yang berkunjung untuk selalu mengakses situs melalui HTTPS (bukan HTTP), bahkan jika pengguna (atau penyerang yang mencoba menjalankan serangan Man-in-the-Middle) mencoba mengakses situs melalui HTTP, browser akan secara paksa beralih ke HTTPS, bahkan jika HTTP tidak tersedia — sedemikian rupa, Anda hanya boleh mengaktifkan HSTS jika Anda mengaktifkan HTTPS dan sepenuhnya berfungsi dengan benar tanpa masalah konten campuran 3 .

Header respons HTTP HTTP Strict Transport Security (HSTS) berikut mengaktifkan HSTS selama 1 tahun (31536000 detik).


Strict-Transport-Security: max-age=31536000

Kebijakan-Keamanan-Konten

Header keamanan HTTP Content-Security-Policy adalah header HTTP dengan banyak kekuatan dan konfigurasi. Ini mengonfigurasi Kebijakan Keamanan Konten (CSP) browser yang merupakan serangkaian fitur keamanan yang ditemukan dalam browser modern yang menyediakan lapisan keamanan tambahan yang membantu mendeteksi dan mengurangi serangan seperti Cross-Site Scripting (XSS) dan serangan injeksi data.

Content-Security Policy (CSP) juga terkenal sulit untuk diperbaiki karena pengaturan CSP yang tepat akan sangat bergantung pada situs web yang bersangkutan, dan harus diuji berat sebelum diterapkan — begitu juga, ia memiliki saudara perempuan Content-Security-Policy -Laporan-Hanya 4 Header HTTP digunakan hanya untuk menguji CSP.

Berikut ini adalah contoh kebijakan Content-Security Policy (CSP) yang cukup sederhana yang hanya mengizinkan pemuatan aset dari tempat asal situs web disajikan.


Content-Security-Policy: default-src 'self'

Namun, Kebijakan Keamanan Konten (CSP) jauh lebih dapat dikonfigurasi daripada yang ditunjukkan dalam contoh sederhana ini. CSP menyertakan arahan lain seperti script-src , style-src , dan img-src untuk menentukan sumber dari mana browser dapat memuat aset (misalnya CSS, gambar, dan font). Untuk daftar lengkap tentang bagaimana CSP dapat dikonfigurasi, lihat panduan referensi cepat Kebijakan Keamanan Konten.

X-Content-Type-Options

Header keamanan HTTP X-Content-Type-Options adalah header non-standar yang dihormati oleh semua browser utama yang mencegah serangan Cross-site Scripting (XSS) yang disebabkan sebagai akibat dari sniffing tipe MIME 5 . Saat ada, header ini memberi tahu browser untuk secara ketat mengikuti tipe MIME yang ditentukan di header HTTP Tipe Konten, dan browser tidak boleh mencoba mendeteksi tipe MIME yang benar untuk data respons itu sendiri. Header memiliki satu arahan — nosniff.


X-Content-Type-Options: nosniff

Header keamanan HTTP lama atau tidak digunakan

Ada juga sejumlah header keamanan HTTP lama dan tidak digunakan. Mereka tidak lagi digunakan, atau tidak lagi berfungsi karena diperkenalkan sebagai perbaikan sementara, eksperimen, atau bahkan inisiatif non-standar yang telah ditinggalkan atau diganti seluruhnya. Di bawah ini adalah daftar tajuk keamanan HTTP ini.

Header keamanan HTTP digantikan oleh Content-Security-Policy

X-Frame-Options

Header keamanan HTTP X-Frame-Options adalah header yang sekarang tidak digunakan lagi yang pertama kali diperkenalkan oleh Microsoft Internet Explorer (dan diadopsi oleh browser lain dengan berbagai tingkat keseragaman dan kompatibilitas) untuk melindungi browser terhadap Cross-site Scripting (XSS), Clickjacking dan serangan lain yang mengandalkan situs web yang ditempatkan di dalam iframe.

Header ini sekarang telah digantikan oleh direktif Kebijakan Keamanan Konten (CSP) frame-ancestor. Disarankan untuk menggunakan CSP dengan direktif frame-ancestor di tempat X-Frame-Options.

X-XSS-Perlindungan

Header keamanan HTTP X-XSS-Protection adalah header non-standar yang diperkenalkan untuk mengaktifkan atau menonaktifkan perlindungan browser terhadap serangan Cross-site Scripting (XSS). Dalam praktiknya, header ini sering kali mudah dilewati oleh penyerang dan akibatnya diabaikan oleh sebagian besar browser modern.

Pin-Kunci-Publik

Header keamanan HTTP Public-Key-Pins digunakan untuk mengonfigurasi fitur keamanan Public Key Pinning (HPKP) yang diperkenalkan di Google Chrome dan Firefox untuk mencegah spoofing sertifikat TLS. HPKP bekerja dengan meminta server web menyediakan browser dengan satu set hash kriptografi dari kunci publik sertifikat TLS yang digunakan situs web, yang kemudian akan digunakan browser untuk membandingkan dengan sertifikat yang diterimanya dari server dalam permintaan berikutnya. Masalahnya adalah bahwa HPKP cukup rumit untuk dikelola dan sering mengakibatkan kesalahan konfigurasi yang dapat sepenuhnya menonaktifkan akses situs web — sehingga tidak disarankan untuk menggunakannya lagi.

Menambahkan Header Keamanan HTTP di WordPress

Header keamanan HTTP berfungsi paling baik saat dikonfigurasi di server web Anda atau, jika berlaku, Jaringan Pengiriman Konten (CDN) atau Firewall Aplikasi Web Anda. Hal ini memungkinkan mereka untuk dikirim pada setiap permintaan. Atau, meskipun kurang ideal, Anda dapat menggunakan plugin WordPress untuk mengatur header ini untuk Anda.

Sekarang setelah kita membahas tujuan header keamanan HTTP, berikut adalah beberapa cara mengaktifkannya di situs WordPress Anda.

Menambahkan header keamanan HTTP di WordPress menggunakan Apache HTTP Server

Berikut ini adalah contoh konfigurasi untuk Apache HTTP Server yang diperlukan untuk mengaktifkan HTTP Strict Transport Security (HSTS), X-Content-Type-Options dan Kebijakan Keamanan Konten sederhana.


<ifModule mod_headers.c>
Header set Strict-Transport-Security "max-age=31536000"
Header set X-Content-Type-Options "nosniff"
Header set Content-Security-Policy "default-src 'self'"
</ifModule>

Menambahkan header keamanan HTTP di WordPress menggunakan Nginx

Demikian pula, berikut ini adalah contoh konfigurasi untuk Nginx yang diperlukan untuk mengaktifkan HTTP Strict Transport Security (HSTS), X-Content-Type-Options dan Kebijakan Keamanan Konten sederhana.


server {
add_header Strict-Transport-Security "max-age=31536000; always;
add_header X-Content-Type-Options "nosniff" always;
add_header Content-Security-Policy "default-src 'self'" always;
}

Menambahkan header keamanan HTTP di WordPress menggunakan plugin

Atau, meskipun kurang efektif (karena bergantung pada WordPress sendiri untuk memodifikasi header), menggunakan plugin WordPress mungkin merupakan cara termudah untuk menambahkan header keamanan HTTP ke situs WordPress Anda. Plugin seperti plugin Redirection memungkinkan Anda menambahkan header HTTP khusus ke situs web Anda.

Cara Memeriksa Header Keamanan HTTP untuk Situs Web

Setelah Anda menambahkan header keamanan HTTP di situs web WordPress Anda, Anda pasti ingin memastikan bahwa header tersebut dikonfigurasi dengan benar dan berfungsi seperti yang Anda harapkan. Cara termudah untuk menguji ini adalah menggunakan alat gratis bernama Security Headers 6 .

Menggunakan alat Header Keamanan semudah memasukkan URL situs web Anda dan menekan "Pindai". Anda kemudian akan diberikan nilai dari A+ sampai F bersama dengan penjelasan tentang bagaimana nilai tersebut telah ditentukan.

Referensi yang digunakan dalam artikel ini [ + ]

Referensi yang digunakan dalam artikel ini
1 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers
2 https://owasp.org/www-project-secure-headers/#http-strict-transport-security
3 https://web.dev/what-is-mixed-content/
4 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only
5 https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types#mime_sniffing
6 https://securityheaders.com/