Cara Menambahkan Header Keamanan HTTP di WordPress

Diterbitkan: 2023-05-18

WordPress adalah Sistem Manajemen Konten (CMS) terpopuler di dunia, menjalankan lebih dari 43% dari semua situs web di internet.Namun, penggunaannya yang meluas menjadikannya target umum bagi para peretas.

Serangan brute force, kerentanan pengunggahan file, dan serangan skrip lintas situs semuanya berkontribusi pada ancaman yang sedang berlangsung.

Untungnya, ada beberapa cara untuk membuat situs web Anda lebih aman dan tidak rentan terhadap serangan. Dan di situlah HTTP Header masuk ke dalam gambar.

Dengan menerapkan Header Keamanan HTTP, Anda dapat membatasi tindakan yang dapat dilakukan browser dan server di situs web Anda dan menambahkan lapisan keamanan tambahan. Header ini mempersulit penyerang untuk mengeksploitasi kerentanan sisi klien.

Pada artikel ini, kita akan membahas apa itu header keamanan HTTP dan bagaimana Anda dapat menerapkannya secara efektif di situs web Anda.

Apa Sebenarnya Header Keamanan HTTP itu?

Header Keamanan HTTP adalah sekelompok arahan yang digunakan oleh aplikasi web untuk mengimplementasikan pertahanan keamanan di browser web. Header ini dipertukarkan antara browser web (klien) dan server untuk mengidentifikasi parameter keamanan komunikasi HTTP. Pertukaran informasi ini memberi tahu browser bagaimana berperilaku selama interaksinya dengan situs Anda, dan mengatur proses seperti menampilkan kesalahan dan mengelola cache.

Tentu saja, keamanan dan efisiensi tambahan ini sangat bergantung pada browser. Browser web lama tidak akan memiliki tingkat keamanan atau kompatibilitas yang sama dan mungkin tidak memproses header keamanan HTTP dengan benar, sepenuhnya, atau bahkan sama sekali. Hal ini berpotensi berarti bahwa, terlepas dari semua upaya Anda dalam membantu pengunjung tetap aman, browser mereka yang sudah usang masih membuat mereka rentan. Sebagai pengembang situs web, kita harus melakukan semua yang kita bisa tetapi menerima bahwa, pada akhirnya pengunjung, adalah tanggung jawab mereka untuk memastikan bahwa mereka menggunakan perangkat lunak terbaru di komputer mereka. Selama mereka menggunakan browser web modern dan terkini, maka penggunaan header keamanan HTTP kami akan berfungsi dengan perangkat lunak browser mereka untuk menjaga mereka tetap aman.

Perhatian utama kami, bagaimanapun, adalah bahwa header keamanan HTTP mencegah situs web Anda dari serangan umum seperti skrip lintas situs dan serangan brute force.Cara paling efektif untuk mengimplementasikan header ini adalah dengan menyetelnya ke akun hosting WordPress Anda (level server) dan menggunakan firewall aplikasi situs web level DNS seperti Cloudflare.

Namun perlu diingat bahwa meskipun menambahkan tajuk keamanan HTTP dapat membantu meningkatkan keamanan situs Anda, ini hanyalah salah satu aspek keamanan situs web dan harus digunakan bersamaan dengan tindakan keamanan lainnya. Ini termasuk memperbarui aplikasi dan plugin Anda, mengenkripsi data sensitif Anda, dan mencadangkan data situs dan file konfigurasi.

Sebelum membahas berbagai metode untuk menambahkan header keamanan, mari kita lihat setiap header secara mendetail dan pahami mengapa ini penting.Jika Anda sudah terbiasa dengan header keamanan, Anda dapat melompat ke bagian di bawah ini.

Jenis Header Keamanan HTTP WordPress

Ada beberapa header keamanan HTTP yang dapat digunakan dengan situs WordPress Anda untuk meningkatkan perlindungan. Mari kita lihat beberapa yang paling penting.

1. Header Keamanan Perlindungan X-XSS

Header keamanan ini digunakan untuk mengonfigurasi skrip lintas situs (XSS), kerentanan keamanan yang memungkinkan pihak ketiga yang tidak diautentikasi untuk mengeksekusi kode atas nama situs web lain di browser.

Ini mencegah banyak serangan XSS di situs web Anda dengan menghentikan perenderan situs jika serangan terdeteksi. X-XSS menggunakan opsi yang lebih aman untuk tidak memuat situs sama sekali daripada mencoba mendisinfeksi halaman dengan mengganti elemen yang berpotensi berbahaya.

Header dapat memiliki salah satu dari beberapa nilai berikut:

  • X-XSS-Protection: 0 Nonaktifkan pemfilteran XSS (tidak disarankan)
  • X-XSS-Protection: 1 Mengaktifkan pemfilteran XSS, yang biasanya merupakan default di sebagian besar browser. Jika serangan XSS terdeteksi, browser akan menghapus bagian halaman yang tidak aman (sanitasi).
  • X-XSS-Perlindungan: 1; mode=block Mengaktifkan pemfilteran XSS, tetapi alih-alih membersihkan halaman, browser akan mencegah perenderan halaman (disarankan)
  • X-XSS-Perlindungan: 1; report=<reporting-uri> Mengaktifkan pemfilteran XSS. Browser akan membersihkan halaman dan melaporkan pelanggaran jika serangan skrip lintas situs terdeteksi.

2. Header Keamanan Opsi X-Frame

Header keamanan X-Frame-Options dapat digunakan untuk mencegah berbagai serangan brute force dan serangan DDOS , tetapi penggunaannya yang paling efektif adalah melawan iframe cross-jacking dan click-jacking di situs WordPress Anda.Header ini memungkinkan Anda memutuskan apakah halaman di situs web Anda dapat disematkan menggunakan elemen iframe di browser atau tidak.

Opsi X-Frame melindungi situs web Anda dari pencurian klik dengan menghentikan pengisian iframe dengan situs Anda. Ini memiliki dua arahan berbeda yang dapat Anda pilih –DENY dan SAMEORIGIN. Ia bekerja dengan semua browser web populer, seperti Chrome, Safari, Firefox, dan Opera.

 X-Frame-Options: DENY
 X-Frame-Options: SAMA ASAL

Saat ditentukan dengan DENY, header X-Frame-Options akan menyebabkan kegagalan jika ada browser yang mencoba memuat halaman dalam bingkai saat dimuat dari situs lain. Upaya untuk melakukan ini juga akan gagal saat dimuat ke dalam iframe dari situs aslinya. Di sisi lain, jika kita menetapkan SAMEORIGIN , kita masih dapat menggunakan halaman di dalam bingkai – selama situs yang menyertakannya di dalam bingkai sama dengan situs yang menampilkan halaman.

Header ini sangat penting untuk halaman web yang berisi informasi sensitif dan halaman yang menyematkan informasi seperti gateway pembayaran dan formulir.

3. Header HTTP Strict Transport Security (HSTS).

HTTP Strict-Transport-Security adalah header respons keamanan yang dikirim dari server web ke browser web pengguna untuk menginformasikan bahwa situs hanya boleh diakses menggunakan HTTP dan tidak pernah melalui HTTP yang tidak terenkripsi.

Header ini menyediakan mekanisme untuk menerapkan penggunaan HTTPS oleh browser , meskipun pengguna mengetik "http://" di bilah alamat atau mengikuti tautan HTTP.Itu juga dapat mencegah pengguna mengabaikan sertifikat SSL/TLS yang kedaluwarsa atau tidak valid dan peringatan browser lainnya. Nilai HSTS ditetapkan per browser yang mengunjungi situs web. Itu tidak diatur per mesin.

Header HSTS menyediakan opsi untuk menyertakan sub-domain apa pun – Anda dapat menggunakan arahan "includeSubDomains" untuk mengadopsi tingkat keamanan yang sama dari domain root. Ini berarti bahwa setiap pengembangan lokal dengan domain (atau sub-domain) tidak lagi dapat diakses melalui HTTP karena browser hanya mengizinkan lalu lintas HTTPS.

Misalnya, jika Anda memiliki header HSTS di example.com dengan arahan “includeSubdomains ” yang diperlukan, Anda tidak akan dapat mengakses subdomain dari example.com melalui koneksi tidak aman setelah Anda mengunjungi example.com. Oleh karena itu, berhati-hatilah jika Anda memilih untuk menggunakan “includeSubdomains” , ini mungkin berimplikasi pada domain Anda yang lain.

Setelah browser menerima header HSTS dari sebuah situs, browser akan mengingat kebijakan HSTS untuk durasi yang ditentukan dan secara otomatis memutakhirkan semua permintaan mendatang ke situs tersebut ke HTTPS. Ini membantu menghindari serangan man-in-the-middle, penyadapan, dan bentuk gangguan lainnya dengan memastikan bahwa semua komunikasi antara browser dan server dienkripsi.

Sintaks untuk tajuk ini adalah:

 # Tanpa direktif includeSubDomains
<JikaModule mod_headers.c>
Tajuk menyetel Strict-Transport-Security: “max-age=63072000;”
</JikaModul>
# Dengan direktif includeSubDomains
<JikaModule mod_headers.c>
Header mengatur Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" 
</JikaModul>

Direktif max-age=<expire-time> menunjukkan waktu (dalam detik) browser harus mengingat bahwa sebuah situs hanya dapat diakses menggunakan HTTPS. Misalnya, dalam contoh di atas, usia maksimal ditetapkan menjadi dua tahun. Jika Anda telah memilih untuk memiliki CDN Servebolt atau Domain yang Dipercepat dari Servbolt, Anda akan secara otomatis memiliki durasi HSTS selama 1 tahun.

4. Tajuk Kebijakan Perujuk

Header HTTP ini mengontrol seberapa banyak informasi perujuk yang dikirim melalui header perujuk harus disertakan dengan permintaan. Ini membatasi jumlah informasi yang dikirim saat pengunjung situs mengklik tautan. Ini membantu mencegah kebocoran informasi sensitif ke situs web lain , seperti URL laman dengan informasi pribadi.

Ini dapat memiliki beberapa nilai – inilah ikhtisar singkatnya:

  • no-referrer: Header Referer tidak akan pernah dikirim dalam kondisi apa pun.
  • No-referrer-when-downgrade: Header Referer tidak akan dikirim saat bernavigasi dari situs HTTPS ke situs HTTP.
  • Asal: Header perujuk hanya akan menyertakan asal (skema, host, dan port) dari halaman perujuk.
  • Asal-ketika-lintas-Asal: Tajuk Perujuk akan menyertakan URL lengkap dari halaman perujuk saat menavigasi antar halaman dalam asal yang sama dan hanya asal saat menavigasi ke asal yang berbeda.
  • Strict-origin: Header Perujuk hanya akan menyertakan asal halaman perujuk dan tidak akan dikirim untuk permintaan lintas asal.
  • Strict-origin-when-cross-Origin: Header Perujuk akan menyertakan asal halaman perujuk dan tidak akan dikirim untuk permintaan lintas asal kecuali untuk asal situs yang sama. Kami merekomendasikan penggunaan pengaturan ini karena mempertahankan kegunaan tajuk sambil mengurangi risiko kebocoran data.
  • Unsafe-url: Referer header akan mengirimkan asal, jalur, dan string kueri saat melakukan permintaan apa pun, terlepas dari keamanannya.

Untuk diskusi mendalam tentang tajuk kebijakan perujuk, baca artikel Google web.dev tentang praktik terbaik untuk kebijakan perujuk .

5. Header X-Content-Type-Options

Header X-Content-Type-Options dikirim oleh server dalam respons HTTP untuk menunjukkan ke browser tentang tipe MIME. Tujuan dari header ini adalah untuk mencegah browser menginterpretasikan file sebagai tipe MIME yang berbeda dari yang ditentukan di header.

Header ini dapat memiliki satu nilai "nosniff". Sintaksnya adalah sebagai berikut:

 X-Content-Type-Options: nosniff

Ini sangat efektif melawan serangan kebingungan MIME – menggunakan header keamanan ini dapat mencegah browser menafsirkan file dengan cara yang tidak terduga yang dapat menyebabkan kerentanan keamanan. Misalnya, jika penyerang mengunggah file dengan ekstensi .jpg tetapi tidak berisi konten karena sebenarnya ini adalah skrip, menyetel header X-Content-Type-Options ke "nosniff" tidak akan mengizinkan browser mengeksekusi skrip, sehingga melindungi pengguna dari potensi pelanggaran.

6. Tajuk Kebijakan Keamanan Konten(CSP).

Content-Security-Policy adalah header keamanan yang digunakan untuk menentukan asal konten dan menyediakan mekanisme agar konten diizinkan untuk dimuat dan dijalankan di situs web atau aplikasi web. Dengan menetapkan sekumpulan kebijakan, header ini dapat membatasi jenis konten yang diizinkan di halaman web dan memitigasi berbagai jenis ancaman keamanan. Ini adalah lapisan keamanan tambahan terhadap serangan Cross-Site Scripting (XSS) dan Injeksi Data yang digunakan untuk kejahatan seperti pencurian data, perusakan situs, dan distribusi malware.

Selain mengontrol jenis sumber daya yang dapat dimuat, header Content-Security-Policy juga menyediakan cara untuk menginstruksikan browser tentang cara menangani pelanggaran kebijakan yang ditentukan di header. Misalnya, kebijakan mungkin menentukan bahwa jika sumber daya melanggar kebijakan, browser harus menerbitkan peringatan atau memblokir sumber daya agar tidak dimuat.

Server perlu dikonfigurasi untuk mengembalikan header Content-Security-Policy agar kebijakan berfungsi. Anda dapat menggunakan tajuk HTTP CSP untuk menentukan kebijakan Anda seperti ini:

 Kebijakan-Keamanan-Konten: kebijakan

Kebijakan ini adalah string yang berisi arahan kebijakan yang menjelaskan Kebijakan Keamanan Konten Anda. Misalnya, Anda dapat menambahkan baris berikut ke file .htaccess Anda untuk mengimplementasikan CSP.

 <JikaModule mod_headers.c>
Tajuk menetapkan Kebijakan-Keamanan-Konten "default-src https: 'unsafe-eval' 'unsafe-inline' 'self'; object-src 'self'; font-src https: data: 'self' http: fonts.googleapis. com themes.googleusercontent.com; connect-src https: wss: 'self'; img-src https: data: 'self' http: *.gravatar.com; worker-src blob: https: 'self' 'unsafe-inline ' 'unsafe-eval'; media-src https: blob: 'self'; style-src https: 'unsafe-eval' 'unsafe-inline' 'self' http: fonts.googleapis.com"
</JikaModul>

Jika Anda menerapkan CSP di situs web WordPress, Anda harus mencatat bahwa 'unsafe-inline' dan 'unsafe-eval' diperlukan oleh WordPress agar berfungsi dengan baik. Konfigurasi di atas adalah titik awal yang baik untuk sebagian besar situs web WordPress. Namun, ada risiko terkait penggunaan konfigurasi di atas tanpa pemahaman yang jelas tentang arti setiap bagian. Berikut adalah rincian dari setiap arahan:

  • default-src – Direktif ini menetapkan kebijakan default untuk semua jenis sumber daya kecuali ditimpa oleh direktif lain.Dalam hal ini, memungkinkan sumber daya dimuat dari asal yang sama ('self'), serta dari sumber HTTPS dan dari skrip yang menggunakan 'unsafe-eval' atau 'unsafe-inline'.
  • object-src – Arahan ini membatasi jenis objek yang dapat disematkan di halaman, seperti applet Flash atau Java.Di sini, ini memungkinkan objek dimuat hanya dari asal yang sama ('sendiri').
  • font-src – Arahan ini membatasi sumber dari mana font dapat dimuat.Di sini, ini memungkinkan font dimuat dari sumber HTTPS, skema URI data, dan dari asal yang sama ('sendiri') atau dari sumber HTTP dari Google Fonts dan Konten Pengguna Google.
  • connect-src – Arahan ini membatasi sumber yang dapat digunakan untuk permintaan jaringan, seperti permintaan AJAX atau WebSockets.Di sini, ini memungkinkan koneksi dibuat hanya melalui HTTPS atau WebSockets dan dari asal yang sama ('mandiri').
  • img-src – Arahan ini membatasi sumber dari mana gambar dapat dimuat.Di sini, ini memungkinkan gambar dimuat dari sumber HTTPS, skema URI data, dan dari asal yang sama ('sendiri') atau dari sumber HTTP dari Gravatar.
  • worker-src – Arahan ini membatasi sumber dari mana pekerja web dapat dimuat.Di sini, ini memungkinkan pekerja untuk dimuat hanya dari skema blob URI, sumber HTTPS, dan dari skrip yang menggunakan 'unsafe-eval' atau 'unsafe-inline'.
  • media-src – Arahan ini membatasi sumber dari mana sumber daya media dapat dimuat, seperti audio atau video.Di sini, ini memungkinkan media untuk dimuat hanya dari sumber HTTPS, skema URI blob, dan dari asal yang sama ('sendiri').
  • style-src – Arahan ini membatasi sumber dari mana stylesheet dapat dimuat.Di sini, ini memungkinkan gaya dimuat dari sumber HTTPS dan dari skrip yang menggunakan 'unsafe-eval' atau 'unsafe-inline', serta dari asal yang sama ('self') dan dari sumber HTTP dari Google Fonts.

Saat menggunakan header CSP dengan instans WordPress Anda, penting untuk diperhatikan bahwapenerapan header CSP yang tidak tepat akan merusak Dasbor Admin WordPress karena plugin dan layanan tertentu mungkin bergantung pada JavaScript pihak ketiga.

Untuk memperbaikinya, Anda harus menambahkan setiap aturan keamanan ke file header secara manual. Cara alternatif, tetapi kurang aman, adalah dengan menonaktifkan header CSP di dasbor admin Anda. Misalnya, inilah yang kami lakukan di servebolt.com :

 Header mengatur X-Frame-Options SAMAORIGIN
Header menyetel Kebijakan Perujuk ketat-Asal-ketika-lintas-Asal
Set tajuk X-XSS-Protection "1; mode=blok"
<Jika "%{REQUEST_URI} !~ /wp-admin/">
# hanya tambahkan tajuk jika bukan layar admin
Header selalu atur Content-Security-Policy "default-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval' *.intercomcdn.com cdn.firstpromoter.com servebolt.containers .piwik.pro *.intercom.io cdn.getreplybox.com platform.twitter.com v0.wordpress.com cdn.jsdelivr.net servebolt.piwik.pro ; media-src 'self' *.intercomcdn.com data: ; img -src 'self' 'unsafe-inline' *.intercom.io *.intercomcdn.com *.intercomassets.com data: raskesider.raskesider.no *.servebolt.com secure.gravatar.com servebolt.piwik.pro ; connect- src 'self' ws: nexus-websocket-a.intercom.io *.piwik.pro servebolt.piwik.pro *.intercom.io ; font-src 'self' *.intercomcdn.com data: ; frame-src 'self ' app.getreplybox.com platform.twitter.com player.vimeo.com wordpress.org www.youtube.com caniuse.bitsofco.de video.wordpress.com *.intercom.io; frame-ancestors 'self' *.servebolt. com;manifest-src 'diri' ;"
</Jika>

Saat menerapkan CSP di situs Anda, Anda harus memperhatikan bahwa hal itu dapat merusak lingkungan pengembangan Anda jika Anda tidak menggunakan HTTPS. Jika Anda tidak yakin cara membuat kebijakan untuk situs Anda, Anda harus menggunakan alat grafik seperti ValidBot – CSP Wizard atau Report URI: CSP generator .

7. Izin-Kebijakan Header

Kebijakan Perizinan menyediakan mekanisme bagi pengembang untuk secara eksplisit menyatakan fungsionalitas apa yang dapat dan tidak dapat diterapkan di situs web .Ini mengelola serangkaian izin yang dibutuhkan situs web. Header ini digunakan untuk membatasi kemampuan situs web guna mencegah risiko keamanan dan privasi tertentu, seperti penyalahgunaan API Javascript, pelacakan pengguna, dan eksekusi kode yang terinfeksi.

Kebijakan Izin memungkinkan server untuk mengatur apakah suatu fitur dapat digunakan dalam dokumen tertentu. Ini menggunakandaftar yang diizinkan – daftar asal yang mengambil nilai tertentu yang telah ditentukan sebelumnya.Nilai tajuk Permission-Policy terdiri dari daftar nama direktif yang dipisahkan koma dan nilainya yang menjelaskan berbagai izin yang diperlukan situs web.

Sintaks umum untuk header Izin-Kebijakan adalah:

 Izin-Kebijakan: <directive>=<allowlist>

Misalnya, jika kita perlu memblokir semua akses ke geolokasi, kita akan melakukan ini:

 Izin-Kebijakan: geolocation=()

Di sini, simbol () menandakan daftar izin kosong. Untuk mengizinkan akses ke subset asal, kami akan melakukan ini:

 <JikaModule mod_headers.c>
Header selalu menetapkan Izin-Kebijakan "geolocation=(self 'https://abc.example.com' 'https://pqr.example.com'), midi=(), sync-xhr=(), accelerometer=( ), giroskop=(), magnetometer=(), kamera=(), mikrofon=(), layar penuh=(mandiri)"
</JikaModul>

Mari kita ambil contoh lain. Nilai tajuk berikut membatasi situs web hanya untuk mengeksekusi skrip jika disajikan dari asal yang sama dengan dokumen utama:

 Izin-Kebijakan: script-src 'self'

Header Permissions-Policy dapat digunakan untuk mengganti atau melengkapi header Content-Security-Policy tradisional, yang menyediakan fungsionalitas serupa tetapi dengan sintaks yang berbeda dan cakupan yang lebih sedikit dalam hal izin.Header ini saat ini merupakan teknologi eksperimental yang hanya didukung di Google Chrome dan browser berbasis Chromium lainnya.Ini memberikan mekanisme yang lebih kuat dan fleksibel untuk mengontrol izin, dan penerapannya diperkirakan akan tumbuh di masa mendatang. Jika Anda ingin mencobanya sendiri, Anda dapat menggunakan Generator Header Kebijakan Izin untuk membuat kebijakan izin dengan mudah.

Menambahkan Header Keamanan HTTP Menggunakan File .htaccess

Cara yang kami sarankan untuk menambahkan header keamanan HTTP adalah dengan mengedit file .htaccesssecara langsung. Ini adalah file konfigurasi server yang paling umum digunakan oleh server web Apache. Dengan mengedit file ini, Anda memastikan bahwa header keamanan HTTP di WordPress dikonfigurasi di tingkat server.

Anda memerlukan akses ke file.htaccesssitus web Anda untuk menggunakan metode ini. Itu dapat diakses di server Apache menggunakan klien FTP.Sebelum melakukan perubahan, sangat disarankan agar Anda membuat cadangan file .htaccessAnda saat ini.

Pertama, cukup masuk ke situs Anda menggunakan klien FTP atau alat pengelola file di panel kontrol hosting Anda. Di folder root situs web Anda, cari file.htaccessdan klik kanan pada opsi 'Edit'. Ini akan membuka file dengan editor teks. Untuk menambahkan tajuk keamanan HTTPS ke situs Anda, Anda dapat menambahkan kode yang relevan di bagian bawah file .htaccess.

Kode contoh berikut dapat digunakan sebagai titik awal.Ini mengatur header keamanan HTTP yang paling umum digunakan dengan pengaturan yang disarankan.

 <JikaModule mod_headers.c>
Header menyetel Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" env=HTTPS
Header set X-XSS-Protection "1; mode=block"
Header menyetel X-Content-Type-Options "nosniff"
Header menyetel X-Frame-Options DENY
Header menyetel Kebijakan-Perujuk "tidak ada-perujuk-ketika-downgrade"
Tajuk menetapkan Kebijakan-Keamanan-Konten "default-src https: 'unsafe-eval' 'unsafe-inline' 'self'; object-src 'self'; font-src https: data: 'self' http: fonts.googleapis. com themes.googleusercontent.com; connect-src https: wss: 'self'; img-src https: data: 'self' http: *.gravatar.com; worker-src blob: https: 'self' 'unsafe-inline ' 'unsafe-eval'; media-src https: blob: 'self'; style-src https: 'unsafe-eval' 'unsafe-inline' 'self' http: fonts.googleapis.com"
Header selalu menetapkan Izin-Kebijakan "geolocation=(self 'https://abc.example.com' 'https://pqr.example.com'), midi=(), sync-xhr=(), accelerometer=( ), giroskop=(), magnetometer=(), kamera=(), mikrofon=(), layar penuh=(mandiri)"
</JikaModul>

Setelah Anda menambahkan konfigurasi di atas ke file .htaccess Anda, header yang relevan akan diterapkan ke semua permintaan web.

Anda dapat memverifikasi apakah tajuk sedang digunakan dengan membuka tab "Jaringan" di Chrome DevTools dan memeriksa tajuk respons permintaan Anda.

Tab Jaringan Chrome DevTools

Setelah menambahkan kode, simpan perubahan Anda dan kunjungi kembali situs web Anda untuk memastikannya berfungsi seperti yang diharapkan. Anda juga harus berhati-hati saat mengedit file .htaccess Anda karena kode header atau kesalahan ketik yang salah dapat memicu kesalahan seperti 500 Internal Server Error .

Menambahkan Header Keamanan HTTP di WordPress Menggunakan Content Distribution Network (CDN)

Jaringan Pengiriman Konten (CDN) adalah sekelompok server yang didistribusikan secara geografis yang menyediakan konten internet dalam cache dari lokasi jaringan yang paling dekat dengan pengguna untuk meningkatkan kinerja web. CDN populer seperti Cloudflarejuga memungkinkan Anda menambahkan header HTTP ke situs web Anda.

Mari ambil Cloudflare sebagai contoh dan lihat bagaimana kita bisa menambahkan header HTTP menggunakan CDN. Cloudflare menawarkan firewall situs web gratis yang belum sempurna bersama dengan layanan CDN, tetapi fitur keamanan yang lebih canggih dikunci di balik paywall.

Menyiapkan Cloudflare di situs web WordPress Anda cukup mudah. Anda dapat mendaftar secara manual di situs web Cloudflare dan mengikuti langkah-langkah di layar untuk mengaktifkannya. Setelah Cloudflare diaktifkan di situs web Anda, buka halaman SSL/TLS di dasbor akun Cloudflare Anda.

Anda kemudian perlu beralih ke tab 'Edge Certificates' dan menemukan bagian HTTP Strict Transport Security (HSTS), dan klik opsi 'Enable HSTS'. Setelah mengaktifkan tombol 'Aktifkan HSTS', sebuah jendela akan muncul dengan instruksi untuk membantu Anda mengaktifkan fitur ini di situs Anda. Klik tombol 'Berikutnya' untuk melanjutkan proses, dan Anda akan melihat opsi untuk menambahkan tajuk keamanan HTTP.

Dari sini, Anda dapat mengaktifkan HSTS di situs Anda dan juga memilih untuk menerapkan HSTS ke subdomain yang menggunakan HTTPS. Menggunakan metode ini akan memberi situs Anda perlindungan dasar menggunakan header keamanan HTTP, tetapi sisi negatifnya adalah Cloudflare tidak mengizinkan Anda menambahkan X-Frame-Options saat ini.

Perlu dicatat bahwa untuk servebolt.com, dan domain lainnya di dalam Cloudflare, HSTS diaktifkan secara default.

Menambahkan Header Keamanan HTTP Menggunakan Plugin WordPress

Metode ketiga untuk menambahkan dan mengonfigurasi header HTTP adalah dengan menggunakan plugin. Meskipun ini adalah salah satu cara termudah untuk menambahkan tajuk Keamanan HTTP ke situs web WordPress Anda, ini biasanya sedikit kurang efektif daripada mengonfigurasi tajuk secara manual.

Anda mungkin telah membaca di tempat lain bahwa banyak plugin keamanan menyertakan opsi untuk menambahkan header keamanan. Namun, kami menyarankan untuk tidak menggunakan plugin keamanan. Baca artikel kami di Plugin Keamanan WordPress untuk memahami mengapa dan apa kekhawatirannya dengan menggunakan ini.

Bagian ini akan membiarkan Anda mengaktifkan atau menonaktifkan berbagai header dan mengatur parameter yang berbeda untuk mereka. Header persis yang dapat Anda aktifkan akan bervariasi tergantung pada plugin pilihan Anda, tetapi yang umum seperti X-XSS-Protection, X-Content-Type-Options, X-Frame-Options, dan Strict-Transport-Security dicakup oleh kebanyakan plugin.

Cara Memeriksa Tajuk Keamanan HTTP di Situs Web Anda

Setelah menambahkan tajuk keamanan HTTP di situs web WordPress Anda, Anda perlu memastikannya dikonfigurasi dengan benar dan berfungsi seperti yang diharapkan. Anda dapat menggunakan salah satu dari banyak alat gratis yang tersedia di internet untuk melakukan pengujian. Sebaiknya gunakan Security Header atau SSL Labs , yang keduanya memberi Anda cara mudah untuk menguji konfigurasi dan memverifikasi bahwa semua header keamanan berfungsi dengan benar.

Alat-alat ini akan menilai tajuk keamanan situs web Anda dan memberi Anda laporan terperinci. Mereka juga memberi tahu Anda header keamanan HTTP mana yang dikirim situs web Anda dan mana yang tidak dikirim. Situs Anda kemudian akan diberi nilai dari A+ hingga F, beserta penjelasan bagaimana nilai tersebut ditentukan.

Misalnya, saat menguji situs web Vogue , kami menemukan bahwa situs web tersebut kehilangan banyak tajuk HTTP penting, sehingga hanya memperoleh nilai C.

Uji SSL Vogue

Dan, seperti yang mungkin Anda duga saat menguji situs web kami sendiri – situs ini mendapatkan nilai A+.

Tes SSL Servebolt

Kesimpulan

Tidak diragukan lagi bahwa menerapkan tajuk HTTP merupakan langkah penting untuk mengamankan situs web Anda. Setelah berhasil menambahkan tajuk HTTP ke situs web Anda, berikut adalah beberapa langkah tambahan yang juga harus Anda pertimbangkan:

  1. Tes untuk kerentanan : Penting untuk menguji situs Anda untuk kerentanan keamanan umum seperti Cross-Site-scripting (CSS) dan Cross-site-request-Forgery (CSRF).Untuk tujuan ini, Anda dapat menggunakan alat seperti OWASP ZAP dan Burp Suite .
  2. Pantau Perubahan : Anda perlu memantau header secara teratur untuk setiap perubahan yang tidak terduga, karena ini biasanya menunjukkan bahwa ada upaya untuk mengeksploitasi kerentanan.
  3. Perbarui tajuk : Saat ancaman baru muncul, penting untuk selalu mengikuti praktik keamanan terbaru dan memperbarui tajuk Anda sesuai dengan itu.

Tertarik dengan hosting terkelola yang secara empiris lebih cepat?

Cobalah pendekatan kami untuk hosting WordPress – memulainya gratis, dan keuntungannya antara lain:

  • Skalabilitas: Dalam uji beban kerja pengguna nyata, Servebolt memberikan waktu respons rata-rata 65 md, waktu respons 4,9x lebih cepat daripada yang terbaik kedua.
  • Waktu muat global tercepat: Waktu muat halaman rata-rata 1,26 detik menempatkan kami di urutan teratas daftar hasil WebPageTest global.
  • Kecepatan komputasi tercepat: Server Servebolt memberikan kecepatan database yang belum pernah terdengar sebelumnya, memproses kueri 2,44 kali lebih banyak per detik daripada rata-rata dan menjalankan PHP 2,6 kali lebih cepat daripada yang terbaik kedua!
  • Keamanan dan waktu aktif yang sempurna: Dengan waktu aktif 100% di semua monitor dan peringkat A+ pada implementasi SSL kami, Anda dapat yakin bahwa situs Anda online dan aman.

Singkatnya, dengan mengizinkan kami mengambil hosting dari piring Anda – Anda akan membuat peningkatan keamanan, kecepatan, dan kinerja situs Anda menjadi lebih mudah. Daftar ke Servebolt untuk menguji kami.