Multipart form ile URL encoded form arasındaki fark nedir?
Kısa cevap
Form verisi istek gövdesinde iki yaygın biçimde gönderilir. URL encoded form (application/x-www-form-urlencoded) bütün alanları tek bir metin hâlinde ad=değer&ad2=değer2 biçiminde yazar ve özel karakterleri percent-encoding ile kodlar; kısa metin alanları için uygundur. Multipart form (multipart/form-data) her alanı boundary dizisiyle ayrılmış ayrı bir bölüm olarak taşır; her bölümün kendi header'ları olabilir ve dosya yüklemede bu biçim kullanılır. TR7'de iki biçim AGS'nin dış servise gönderdiği HTTP isteklerinde Body Type alanında seçilir (HTTP türündeki Authentication Providers ile HTTP OTP yöntemli MFA profillerinde; varsayılan JSON). WAF ise her iki biçimi Form bölümü olarak inceler: varsayılan ayarlarla alan adları ve değerleri imza taramasından geçer, multipart isteklerde yüklenen dosyalar ve gövdenin tamamı ayrıca taranır.
TR7'de Nerede Kullanılır
| Nerede | Alan / etiket | Ne için |
|---|---|---|
| AGS → Authentication → Authentication Providers → Provider Type: HTTP | Body Type → Multipart form / URL encoded form (varsayılan JSON) | Kimlik doğrulama servisine giden isteğin gövde biçimi; alanlar Body Parameters tablosundan oluşur |
| AGS → Authentication → Multi-Factor Authentication (MFA) → MFA Method: HTTP OTP | Body Type → Multipart form / URL encoded form (varsayılan JSON) | OTP gönderen servise giden isteğin gövde biçimi |
| Left Monitor Panel → WAF-Protected vServices → vService → WAF Management → N page types → kural → Form | OWASP Check, OWASP Check in Upload | Form alanlarını ve yüklenen dosyaları imza taramasından geçirme |
Karşılaştırma
| URL encoded form | Multipart form | |
|---|---|---|
| Content-Type | application/x-www-form-urlencoded | multipart/form-data; boundary=… |
| Yapı | Tek metin: ad=değer&ad2=değer2 | Boundary ile ayrılmış bölümler, her bölümde kendi header'ları |
| Özel karakterler | Percent-encoding ile kodlanır | Bölüm içinde olduğu gibi taşınır |
| Dosya yükleme | Uygun değil | Uygun |
| Tanımı | WHATWG URL Standard | RFC 7578 |
WAF'ın iki biçimi nasıl taradığının ayrıntıları: Form verisi hem ham hâliyle hem URL-decode edilmiş hâliyle mi taranır? · Multipart isteklerde gövdenin tamamı ayrıca taranır mı? · Yüklenen dosyaların içeriği de taranıyor mu (OWASP Check in Upload)?
Sık Karıştırılan Noktalar
- "Dosya URL encoded formla da gönderilebilir." Tarayıcı, dosya alanı olan bir formu URL encoded biçimde gönderdiğinde dosyanın içeriğini değil yalnızca adını gönderir; dosya yüklemek için multipart form kullanılır.
- "Multipart istekte WAF yalnızca dosyaları denetler." Form alanlarının adları ve değerleri de taranır; gövdenin tamamı da ayrıca taramadan geçer.
- "WAF iki biçimi aynı şekilde çözer." URL encoded form alanları ham hâlleriyle ve bir kez URL çözülmüş hâlleriyle taranır; multipart form alanları yalnızca ham hâlleriyle taranır.
Dokümantasyonda nasıl yapılır
