Lewati ke konten utama

HTTP Headers

HTTP headers adalah bagian inti dari permintaan dan respons HTTP. Mereka mengirimkan informasi tambahan dengan permintaan atau respons HTTP (misalnya, browser klien, halaman yang diminta, server, dan lainnya).

Header utama yang digunakan dengan environment untuk melakukan deployment aplikasi Anda:

HeaderDeskripsiNilai
hostMenentukan host dan nomor port dari sumber daya (server) yang diminta.{envName}.{platformDomain}
x-forwarded-protoMengidentifikasi protokol (HTTP atau HTTPS) yang terhubung ke proxy atau load balancer Anda.http/https
x-forwarded-forMengidentifikasi alamat IP asal dari klien yang terhubung ke server web melalui proxy HTTP atau load balancer.xx.xx.xx.xx, xx.xx.xx.xx
Rantai IP atau rantai IPs (jika permintaan melewati beberapa proxy)
x-real-ipAlamat IP akhir dalam rantai x-forwarded-for, yaitu proxy terbaru dari klien yang terhubung ke server web.xx.xx.xx.xx
alamat IP paling kanan dalam x-forwarded-for
x-hostNama domain asal dari server (untuk virtual hosting) dan opsional nomor port TCP.{envName}.{platformDomain}
x-uriMengidentifikasi nama atau sumber daya web./
tip

Header keamanan tambahan digunakan untuk beberapa stack tertentu.

Daftar header HTTP yang didukung dapat bervariasi berdasarkan topologi dari environment yang terhubung. Karena spesifikasi akses eksternal (melalui resolver/SLB atau public IP), ada empat kemungkinan skenario ketika bekerja dengan platform:

TopologiSkemaHeader yang Didukung
Single application serverSLB to app server_host
x-forwarded-proto
x-real-ip
x-forwarded-for
x-host_
Load balancer dengan application serversSLB to load balancer_host
x-real-ip
x-host
x-forwarded-for
x-uri
x-forwarded-proto_
Application server dengan public IPpublic IP to app serverhost
Load balancer dengan public IP dan application serverspublic IP to load balancer_host
x-real-ip
x-host
x-forwarded-for
x-uri
x-forwarded-proto_

Security Headers

Anda dapat dengan mudah mengelola security headers dengan mengelola file konfigurasi yang sesuai. Path-nya berbeda untuk setiap server:

  • Apache (PHP, Ruby, Python), MySQL, MariaDB : /etc/httpd/conf.d/10-shared_headers.conf
  • NGINX (PHP, Ruby) dan LEMP : /etc/nginx/conf.d/headers/10-shared_headers.conf
  • LiteSpeed, LLSMP : /var/www/conf/vhconf.xml (hanya dapat disesuaikan melalui panel admin)
  • Tomcat, TomEE : /opt/tomcat/conf/web.xml

Catatan:

  • Pemrosesan headers untuk server Node.js, Golang, .NET, JavaEngine, dan Springboot harus diimplementasikan secara manual dalam aplikasi pengguna.
  • Untuk stack Tomcat dan TomEE, hanya header berikut yang diaktifkan secara default: X-Content-Type-Options, X-Frame-Options, X-XSS-Protection, dan Strict-Transport-Security (untuk SSL). Header lain dapat diaktifkan secara manual, jika diperlukan.
security headers configuration file

Jangan lupa untuk restart server Anda untuk menerapkan perubahan apa pun yang dilakukan pada file konfigurasi.

Header HTTP tambahan berikut digunakan secara default pada stack yang tercantum di atas:

HeaderDeskripsiNilai
Cross-Origin-Embedder-PolicyMemungkinkan server untuk mendeklarasikan kebijakan penyematan untuk dokumen tertentu.unsafe-none;
Cross-Origin-Opener-PolicyMencegah domain lain membuka/mengontrol jendela.same-origin-allow-popups
Cross-Origin-Resource-PolicyMencegah domain lain membaca respons sumber daya yang diterapkan dengan header ini.same-origin
Content-Security-PolicyMengontrol sumber daya yang diizinkan agen pengguna untuk dimuat untuk halaman tertentu. Nonaktif secara default.frame-ancestors ‘self’; frame-src ‘self’;
Expect-CT (hanya dengan SSL diaktifkan)Memungkinkan situs untuk menerapkan persyaratan Certificate Transparency, yang mencegah penggunaan sertifikat yang diterbitkan secara salah untuk situs tersebut (yaitu, memerlukan bahwa setiap sertifikat untuk situs tersebut muncul dalam log CT publik).max-age=3600, enforce
Permissions-PolicyMenyediakan mekanisme untuk mengizinkan dan menolak penggunaan fitur browser dalam bingkai dan iframe yang disematkan._payment=(self)
geolocation=(self)_
Strict-Transport-Security (hanya dengan SSL diaktifkan)Memaksa komunikasi menggunakan HTTPS daripada HTTP.max-age=5; includeSubDomains
X-Content-Type-OptionsMenonaktifkan MIME sniffing dan memaksa browser menggunakan tipe yang diberikan dalam Content-Type.nosniff
X-Frame-OptionsMenunjukkan apakah browser harus diizinkan untuk menampilkan halaman dalam < frame>, < iframe>, < embed>, atau < object>.SAMEORIGIN
X-Permitted-Cross-Domain-PoliciesMenentukan apakah file kebijakan lintas domain (crossdomain.xml) diizinkan. File tersebut dapat mendefinisikan kebijakan untuk mengizinkan klien menangani data lintas domain yang sebaliknya akan dibatasi karena Same-Origin Policy.none
Referrer-PolicyMengontrol berapa banyak informasi referrer (dikirim melalui header Referer) yang harus disertakan dalam permintaan.strict-origin-when-cross-origin (default)
X-XSS-ProtectionMengaktifkan pemfilteran cross-site scripting.1; mode=block

Baca Juga