Mengaktifkan Modul Security Header Apache

Security Header pada Apache terdiri dari X-Content-Type-Options, Strict-Transport-Security, Permissions-Policy, Referrer-Policy, X-Frame-Options , Content-Security-Policy.

X-Content-Type-Options adalah sebuah header keamanan HTTP yang dapat dikonfigurasi pada server Apache. Fungsinya adalah untuk mengontrol perilaku browser dalam menangani jenis konten (content type) dari respons yang diterima dari server.

Ada dua nilai umum yang dapat diatur untuk header ini:

nosniff : Ini merupakan pengaturan yang membantu keamanan saat berinternet. Dengan mengatur nilai “nosniff” pada header sebuah halaman web, kita memberi tahu browser agar tidak mencoba menebak jenis konten yang ada. Ini berguna untuk melindungi pengguna dari serangan berbahaya seperti Cross-Site Scripting (XSS), di mana konten yang seharusnya tidak dijalankan malah bisa berpotensi dijalankan sebagai script oleh browser.

none: Nilai ini menyatakan bahwa browser diizinkan untuk melakukan sniffing terhadap tipe konten (content type) dalam respons HTTP. Ini adalah pengaturan default jika header tidak diatur.

Dengan mengatur X-Content-Type-Options dengan nilai “nosniff”, Anda dapat meningkatkan keamanan aplikasi web Anda dengan memastikan bahwa browser tidak akan mencoba untuk menginterpretasikan jenis konten secara tidak aman. Hal ini meminimalkan risiko eksploitasi kelemahan keamanan yang terkait dengan manipulasi tipe konten oleh pihak yang tidak berwenang.

Strict-Transport-Security (STS) adalah sebuah header keamanan HTTP yang dapat dikonfigurasi pada server Apache. Fungsinya adalah untuk memaksa klien (seperti browser) untuk selalu menggunakan koneksi HTTPS (HTTP Secure) saat berkomunikasi dengan server, bahkan jika pengguna mencoba mengaksesnya melalui HTTP (tanpa SSL/TLS).

Dengan mengatur header Strict-Transport-Security, Anda dapat meningkatkan keamanan aplikasi web Anda dengan memastikan bahwa komunikasi antara klien dan server terjadi melalui koneksi yang terenkripsi. Hal ini membantu melindungi data sensitif yang dikirimkan antara klien dan server dari serangan pengintipan (sniffing) dan man-in-the-middle (MITM).

Beberapa parameter yang dapat diatur dalam header Strict-Transport-Security meliputi:

  1. max-age: Parameter ini menentukan waktu (dalam detik) dimana browser harus memaksa pengguna untuk menggunakan koneksi HTTPS. Misalnya, max-age=31536000 akan membuat browser memaksa pengguna untuk menggunakan HTTPS selama satu tahun setelah menerima header ini.
  2. includeSubDomains: Parameter ini bersifat opsional. Jika diatur, maka kebijakan STS akan berlaku untuk semua subdomain dari domain yang sama.
  3. preload: Parameter ini bersifat opsional dan digunakan untuk mendaftarkan domain Anda dalam daftar preload HSTS yang disediakan oleh browser. Ini mengharuskan klien untuk selalu menggunakan HTTPS ketika berkomunikasi dengan domain Anda, bahkan sebelum mereka pertama kali mengunjungi situs Anda.

Dengan mengimplementasikan Strict-Transport-Security, Anda dapat memastikan bahwa koneksi antara klien dan server terjamin keamanannya dengan penggunaan protokol HTTPS, yang secara signifikan mengurangi risiko serangan seperti pemalsuan sesi (session hijacking) dan pencurian data sensitif.

Permissions-Policy adalah header keamanan HTTP yang memungkinkan server untuk mengontrol kebijakan izin (permissions) yang diterapkan pada berbagai fitur browser, seperti kamera, mikrofon, akses geolokasi, sensor gerak, dan lainnya. Header ini memberikan kontrol lebih lanjut kepada pengembang web untuk melindungi privasi pengguna dan meningkatkan keamanan.

Fungsi utama dari Permissions-Policy adalah untuk memungkinkan pengembang untuk menentukan dan membatasi akses ke fitur-fitur spesifik pada peramban (browser) yang digunakan oleh pengguna. Ini membantu melindungi pengguna dari penyalahgunaan yang mungkin terjadi melalui fitur-fitur tersebut, serta memberikan kontrol lebih besar terhadap pengalaman pengguna.

Contoh penggunaan Permissions-Policy termasuk:

  1. Geolocation: Mengizinkan atau memblokir akses pengguna ke informasi geolokasi.
  2. Camera: Mengizinkan atau memblokir akses pengguna ke kamera perangkat.
  3. Microphone: Mengizinkan atau memblokir akses pengguna ke mikrofon perangkat.
  4. Accelerometer: Mengizinkan atau memblokir akses pengguna ke sensor gerak perangkat.
  5. Fullscreen: Mengizinkan atau memblokir situs web untuk meminta mode tampilan penuh pada peramban.
  6. Dan banyak lagi.

Dengan mengatur Permissions-Policy, pengembang dapat menetapkan kebijakan izin yang sesuai dengan kebutuhan aplikasi web mereka dan meningkatkan keamanan serta privasi pengguna. Hal ini membantu dalam mencegah eksploitasi dan penggunaan yang tidak sah atas fitur-fitur browser yang sensitif.

Referrer-Policy adalah header keamanan HTTP yang dapat dikonfigurasi pada server Apache. Fungsinya adalah untuk mengontrol informasi yang dikirimkan sebagai header Referer saat mengakses halaman web dari tautan atau saat memuat sumber daya eksternal (seperti gambar, skrip, dll.).

Secara khusus, Referrer-Policy memungkinkan pengaturan berikut:

  1. no-referrer: Ketika header ini diatur, tidak ada informasi Referer yang akan dikirimkan ketika pengguna melakukan navigasi dari satu situs ke situs lainnya. Ini berarti situs penerima tidak akan menerima informasi tentang situs asal dari mana pengguna datang.
  2. no-referrer-when-downgrade: Ini adalah pengaturan default. Ketika pengguna melakukan navigasi dari situs yang menggunakan HTTPS ke situs yang menggunakan HTTP, tidak ada informasi Referer yang akan dikirimkan. Namun, jika navigasi terjadi di dalam situs yang sama atau dari situs HTTP ke situs HTTPS, informasi Referer akan dikirimkan.
  3. same-origin: Ketika header ini diatur, hanya informasi Referer yang berasal dari halaman dengan asal (origin) yang sama yang akan dikirimkan. Informasi Referer tidak akan dikirimkan ketika navigasi melintasi batas origin.
  4. strict-origin: Mirip dengan “same-origin”, tetapi dalam kasus ini, Referer hanya akan dikirimkan jika protokol dari dua URL cocok.
  5. strict-origin-when-cross-origin: Ini adalah pengaturan default untuk navigasi lintas asal. Informasi Referer akan dikirimkan ketika protokol sama dan tidak akan dikirimkan jika protokol berbeda.
  6. origin: Informasi Referer hanya akan berisi origin (domain) dari URL yang memuat sumber daya.
  7. unsafe-url: Header Referer akan mengirimkan seluruh URL, bahkan jika protokol berbeda. Ini dapat menyebabkan kebocoran informasi sensitif dan sebaiknya dihindari kecuali diperlukan.

Dengan mengatur Referrer-Policy, pengembang dapat mengontrol tingkat privasi yang diinginkan dalam hal berbagi informasi Referer. Hal ini membantu dalam melindungi privasi pengguna dan mencegah kebocoran informasi sensitif kepada pihak yang tidak berwenang.

X-Frame-Options adalah sebuah header keamanan HTTP yang dapat dikonfigurasi pada server Apache. Fungsinya adalah untuk memberikan kontrol terhadap pengaturan bingkai (frames) pada halaman web yang dimuat di dalam suatu bingkai (frame) atau iframe.

Header X-Frame-Options memiliki beberapa nilai yang dapat diatur:

  1. DENY: Mengatur bahwa halaman web tidak boleh dimuat di dalam bingkai atau iframe sama sekali. Ini berarti bahwa halaman tidak dapat dimuat sebagai bagian dari halaman web lain, bahkan jika itu adalah situs web yang sama.
  2. SAMEORIGIN: Mengatur bahwa halaman web hanya dapat dimuat di dalam bingkai atau iframe jika bingkai tersebut memiliki asal (origin) yang sama dengan halaman yang mengandung bingkai tersebut. Artinya, halaman web hanya dapat dimuat di dalam bingkai jika bingkai tersebut berasal dari domain yang sama dengan halaman tersebut.
  3. ALLOW-FROM uri: Mengatur bahwa halaman web hanya dapat dimuat di dalam bingkai atau iframe jika bingkai tersebut berasal dari URI (Uniform Resource Identifier) yang ditentukan. Ini memungkinkan kontrol yang lebih spesifik terhadap bingkai, memungkinkan untuk mengizinkan bingkai dari domain tertentu.

Dengan menggunakan header X-Frame-Options, pengembang dapat mengendalikan bagaimana halaman web mereka dimuat di dalam bingkai atau iframe pada situs web lain. Ini membantu mencegah serangan seperti clickjacking, di mana halaman web dimuat di dalam bingkai yang tidak terlihat untuk mencuri informasi pengguna atau melakukan tindakan yang tidak diinginkan.

Content-Security-Policy (CSP) adalah sebuah header keamanan HTTP yang dapat dikonfigurasi pada server Apache. Fungsinya adalah untuk memberikan pengaturan kebijakan (policy) yang membatasi sumber daya yang dapat dimuat oleh halaman web, termasuk skrip JavaScript, gambar, stel CSS, dan sumber daya lainnya.

Dengan menggunakan CSP, pengembang dapat mengontrol dari mana sumber daya tersebut dapat dimuat dan melindungi aplikasi web dari serangan seperti Cross-Site Scripting (XSS), injeksi skrip, dan serangan lainnya yang melibatkan eksekusi kode berbahaya.

Kebijakan yang dapat ditetapkan dalam header Content-Security-Policy meliputi:

  1. default-src: Mengatur sumber daya default yang dapat dimuat oleh halaman web jika kebijakan yang lebih spesifik tidak diberikan.
  2. script-src: Mengatur sumber daya JavaScript yang diperbolehkan untuk dimuat.
  3. style-src: Mengatur sumber daya CSS yang diperbolehkan untuk dimuat.
  4. img-src: Mengatur sumber daya gambar yang diperbolehkan untuk dimuat.
  5. font-src: Mengatur sumber daya font yang diperbolehkan untuk dimuat.
  6. frame-src: Mengatur sumber daya yang diperbolehkan untuk dimuat dalam bingkai (frames).
  7. connect-src: Mengatur sumber daya yang diperbolehkan untuk melakukan koneksi ke server (misalnya, AJAX, WebSocket).
  8. object-src: Mengatur sumber daya yang diperbolehkan untuk dimuat sebagai objek (misalnya, Flash, video, audio).
  9. media-src: Mengatur sumber daya media (audio dan video) yang diperbolehkan untuk dimuat.
  10. worker-src: Mengatur sumber daya yang diperbolehkan untuk dimuat sebagai web worker.
  11. form-action: Mengatur URL yang diperbolehkan untuk digunakan sebagai tujuan dari permintaan formulir.
  12. frame-ancestors: Mengatur domain yang diperbolehkan untuk memuat halaman dalam bingkai (frames).

Dengan menggunakan CSP, pengembang dapat meningkatkan keamanan aplikasi web mereka dengan membatasi sumber daya yang dapat dimuat, mengurangi risiko eksploitasi, dan melindungi pengguna dari serangan berbahaya.

Tahap 1 :

Untuk mengaktifkan header perintahnya adalah sebagai berikut :

# a2enmode  headers

Tahap 2 :

edit file /etc/apache2/site-available/rekayasainformatika.com-le-ssl.conf. Ini untuk mengaktifkan Strict-Transport-Security, Permissions-Policy, Referrer-Policy

# nano /etc/apache2/site-available/rekayasainformatika.com-le-ssl.conf
<VirtualHost *:443>
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Header always set Permissions-Policy "geolocation=(),midi=(),sync-xhr=(),microphone=(),camera=(),magnetometer=(),gyroscope=(),fullscreen=(self),payment=()"
Header always set Referrer-Policy "strict-origin"
</VirtualHost>
</IfModule>

Tahap 3 :

Kemudian untuk mengaktifkan X-Frame-Options, Content-Security-Policy, X-Content-Type-Options yaitu dengan mengedit file /etc/apache2/conf-enabled/security.conf.

# nano /etc/apache2/conf-enabled/security.conf
Header set X-Frame-Options: "SAMEORIGIN"
Header set Content-Security-Policy: "frame-ancestors 'self';"
Header always set X-Content-Type-Options "nosniff"

Leave a ReplyCancel reply