Pengantar
Keamanan aplikasi web sering kali berfokus pada ancaman populer seperti SQL Injection, Cross-Site Scripting (XSS), atau Cross-Site Request Forgery (CSRF). Namun, terdapat jenis serangan lain yang tidak kalah berbahaya karena mampu memanipulasi cara aplikasi memproses data, yaitu HTTP Parameter Pollution (HPP).
HTTP Parameter Pollution memanfaatkan kelemahan dalam penanganan parameter HTTP yang memiliki nama sama (duplicate parameters). Perbedaan cara framework, server web, atau aplikasi memproses parameter ganda dapat dimanfaatkan penyerang untuk mengubah logika aplikasi, melewati mekanisme validasi, bahkan membantu eksploitasi kerentanan lain.
Walaupun terdengar sederhana, HPP telah menjadi perhatian dalam berbagai pengujian keamanan aplikasi web karena dapat menimbulkan dampak yang signifikan apabila tidak ditangani dengan benar.
Apa Itu HTTP Parameter Pollution (HPP)?
Pengertian HTTP Parameter Pollution
HTTP Parameter Pollution (HPP) adalah teknik serangan yang dilakukan dengan mengirimkan beberapa parameter HTTP dengan nama yang sama dalam satu permintaan (HTTP Request). Tujuannya adalah memanfaatkan perbedaan cara aplikasi atau framework dalam memproses parameter tersebut.
Sebagai contoh, sebuah URL dapat berisi parameter seperti:
https://example.com/search?category=technology&category=security
Pada kasus tersebut, aplikasi harus menentukan nilai mana yang akan digunakan. Beberapa framework memilih parameter pertama, sebagian menggunakan parameter terakhir, sementara yang lain menggabungkan seluruh nilai menjadi sebuah daftar.
Menurut OWASP Web Security Testing Guide, perbedaan perilaku dalam pemrosesan parameter HTTP dapat dimanfaatkan untuk mengubah alur logika aplikasi atau melewati mekanisme validasi apabila tidak dilakukan pengujian dan validasi yang memadai (dikutip dari: https://owasp.org/www-project-web-security-testing-guide/).
Bagaimana Cara Kerja HTTP Parameter Pollution?
Secara umum, serangan HPP berlangsung melalui tahapan berikut:
- Penyerang mengirim permintaan HTTP yang berisi parameter dengan nama yang sama.
- Server menerima seluruh parameter tersebut.
- Framework atau aplikasi memilih salah satu nilai atau menggabungkannya.
- Logika aplikasi berjalan berdasarkan hasil pemrosesan tersebut.
- Penyerang memanfaatkan perbedaan perilaku untuk mencapai tujuan tertentu.
Karena setiap teknologi memiliki cara penanganan parameter yang berbeda, hasil akhirnya juga dapat bervariasi.
baca juga : Server-Sent Events (SSE) vs WebSockets: Mana yang Lebih Tepat untuk Aplikasi Real-Time Modern?
Mengapa HTTP Parameter Pollution Bisa Terjadi?
HPP umumnya muncul akibat beberapa faktor berikut:
- Tidak adanya validasi terhadap parameter ganda.
- Perbedaan implementasi antara web server dan framework.
- Penggunaan middleware yang memproses parameter secara berbeda.
- Kurangnya pengujian terhadap skenario input yang tidak biasa.
Semakin kompleks arsitektur aplikasi, semakin penting memastikan konsistensi dalam pemrosesan parameter.
Dampak HTTP Parameter Pollution
HTTP Parameter Pollution dapat menyebabkan berbagai masalah keamanan.
Beberapa di antaranya meliputi:
- Melewati validasi input.
- Mengubah logika bisnis aplikasi.
- Memanipulasi hasil pencarian atau filter.
- Membantu eksploitasi SQL Injection atau XSS.
- Mengubah parameter autentikasi maupun otorisasi.
- Mengganggu integritas data yang diterima aplikasi.
Besarnya dampak bergantung pada bagaimana aplikasi menggunakan parameter tersebut dalam proses bisnis.
Contoh Skenario HTTP Parameter Pollution
Misalkan sebuah aplikasi menggunakan parameter berikut untuk menentukan hak akses:
role=user
Seorang penyerang kemudian mengirim permintaan dengan parameter ganda:
role=user&role=admin
Apabila aplikasi atau framework memproses nilai terakhir tanpa validasi, logika aplikasi dapat bekerja dengan nilai admin. Sebaliknya, pada framework lain yang menggunakan nilai pertama, hasilnya akan berbeda. Perbedaan inilah yang menjadi inti dari serangan HPP.
Perbedaan HTTP Parameter Pollution dan HTTP Parameter Tampering
Walaupun terdengar mirip, keduanya memiliki karakteristik yang berbeda.
| Aspek | HTTP Parameter Pollution | HTTP Parameter Tampering |
|---|---|---|
| Target | Parameter dengan nama yang sama | Mengubah nilai parameter |
| Teknik | Menambahkan parameter ganda | Memodifikasi parameter yang sudah ada |
| Fokus | Perbedaan pemrosesan parameter | Manipulasi data yang dikirim |
| Dampak | Mengubah logika aplikasi | Mengubah nilai transaksi atau proses bisnis |
Memahami perbedaan ini membantu pengembang memilih strategi mitigasi yang tepat.
Framework dan Server yang Memiliki Perilaku Berbeda
Berbagai framework memiliki cara yang berbeda dalam menangani parameter HTTP yang sama.

Sebagai contoh:
- Menggunakan nilai pertama.
- Menggunakan nilai terakhir.
- Menggabungkan seluruh nilai menjadi array.
- Menghasilkan kesalahan apabila ditemukan parameter duplikat.
Oleh karena itu, pengujian kompatibilitas dan keamanan sangat penting ketika aplikasi menggunakan beberapa komponen dalam satu arsitektur.
baca juga : Kesalahan Umum yang Menghambat Critical Thinking
Cara Mencegah HTTP Parameter Pollution
Validasi Seluruh Parameter
Pastikan aplikasi memeriksa keberadaan parameter ganda dan menolak permintaan yang tidak sesuai dengan aturan bisnis.
Gunakan Allowlist Parameter
Terima hanya parameter yang memang dibutuhkan oleh aplikasi dan abaikan parameter yang tidak dikenali.
Terapkan Validasi di Sisi Server
Jangan hanya mengandalkan validasi pada sisi client karena parameter HTTP dapat dimodifikasi dengan mudah.
Konsisten dalam Pemrosesan Parameter
Pastikan seluruh komponen aplikasi, termasuk web server, framework, dan middleware, memiliki aturan pemrosesan parameter yang konsisten.
Lakukan Pengujian Keamanan
Sertakan pengujian terhadap parameter ganda dalam proses Static Application Security Testing (SAST), Dynamic Application Security Testing (DAST), maupun penetration testing.
Menurut PortSwigger Web Security Academy, HTTP Parameter Pollution dapat digunakan untuk melewati mekanisme validasi atau membantu eksploitasi kerentanan lain apabila aplikasi tidak menangani parameter ganda secara konsisten (dikutip dari: https://portswigger.net/web-security).
Best Practice Mengamankan Aplikasi dari HPP
Selain langkah pencegahan di atas, organisasi juga dapat menerapkan praktik berikut:
Gunakan Framework yang Terawat
Pilih framework yang memiliki dokumentasi jelas mengenai cara pemrosesan parameter HTTP dan rutin memperoleh pembaruan keamanan.
Terapkan Logging yang Baik
Catat permintaan HTTP yang mengandung parameter duplikat agar aktivitas mencurigakan dapat dianalisis lebih lanjut.
Integrasikan Web Application Firewall (WAF)
WAF dapat membantu mendeteksi pola permintaan HTTP yang tidak lazim, termasuk penggunaan parameter ganda dalam jumlah berlebihan.
Edukasi Tim Pengembang
Pastikan pengembang memahami bahwa perbedaan perilaku framework dalam memproses parameter dapat menimbulkan risiko keamanan apabila tidak diperhatikan sejak tahap desain aplikasi.
Mengapa HTTP Parameter Pollution Masih Relevan?
Meskipun banyak framework modern telah menyediakan mekanisme validasi yang lebih baik, HPP masih relevan karena aplikasi saat ini sering dibangun menggunakan kombinasi berbagai teknologi, seperti API Gateway, reverse proxy, load balancer, middleware, dan framework backend yang memiliki perilaku berbeda dalam memproses parameter HTTP.
Ketidakkonsistenan tersebut dapat membuka peluang bagi penyerang untuk mengeksploitasi logika aplikasi apabila tidak dilakukan pengujian keamanan secara menyeluruh.
Kesimpulan
HTTP Parameter Pollution (HPP) merupakan teknik serangan yang memanfaatkan parameter HTTP dengan nama yang sama untuk mengubah cara aplikasi memproses permintaan. Perbedaan implementasi pada web server, framework, maupun middleware dapat menyebabkan hasil pemrosesan yang tidak konsisten dan berpotensi dimanfaatkan untuk melewati validasi, memanipulasi logika bisnis, atau mendukung eksploitasi kerentanan lain.
Untuk mengurangi risiko HPP, pengembang perlu menerapkan validasi parameter di sisi server, menggunakan allowlist, memastikan konsistensi pemrosesan parameter di seluruh komponen aplikasi, serta melakukan pengujian keamanan secara berkala. Dengan menerapkan praktik secure coding dan konfigurasi yang tepat, organisasi dapat membangun aplikasi web yang lebih aman terhadap berbagai bentuk manipulasi parameter HTTP.









