Form verisi hem ham hâliyle hem URL-decode edilmiş hâliyle mi taranır?
Kısa cevap
URL kodlu form gövdelerinde (application/x-www-form-urlencoded) evet: her alan adı ve her değer önce ham hâliyle, sonra bir kez URL çözülmüş hâliyle (+ boşluğa, %xx karaktere) imza taramasından geçer; aynı imza iki hâlde de eşleşirse bir kez sayılır (Form · OWASP Check). Sorgu parametreleri de aynı kuralla taranır. Multipart form alanları, başlıklar, JSON ve XML değerleri yalnızca ham hâliyle taranır. Gövde önce & ve = ile bölünür, sonra değerler çözülür; böylece %26 ile kodlanmış bir & sahte alan üretemez. Yapısal denetimler (değer uzunluğu, değer deseni, izinli ad listeleri) çözülmemiş ham metin üzerinde çalışır. Path'in çözülmesi ise Checks penceresindeki URL Decoding ayarıyla yönetilir.
Nasıl Çalışır?
| Bölüm | İmza taraması | Yapısal denetimler |
|---|---|---|
| Query | Ham + bir kez çözülmüş | Ham |
Form (application/x-www-form-urlencoded) | Ham + bir kez çözülmüş | Ham |
Form (multipart/form-data) | Ham | Ham |
| Header | Ham | Ham |
| JSON, Xml | Ham (çözümlenmiş JSON/XML değerleri) | Ham |
| Path | URL Decoding kapalıyken ham + bir kez çözülmüş; açıkken bir kez çözülmüş hâli (URL Decoding ayarı neyi etkiler; query ve form değerleri de decode edilir mi?) | URL Decoding açıkken çözülmüş, kapalıyken ham path |
- Çözme tek adımdır: çift kodlanmış değer (
%2527) bir adımda%27olur; ikinci kat açılmaz. - Değer uzunluğu ham metin üzerinden ölçülür:
a%20bdeğeri 5 bayt sayılır. Parametre adları da istekteki ham hâliyle karşılaştırılır. - Taramalar ilgili sekmenin OWASP Check ayarı açıkken yapılır; parametreye özel değişken kuralı varsa onun ayarı geçerlidir.
TR7'de
Çözme davranışı sabittir; Query ve Form için ayrı bir ayar yoktur. URL Decoding yalnızca path'i etkiler ve Left Monitor Panel → WAF-Protected vServices → vService → WAF Management → Inspection & Blocking bölümündeki Checks kartının kalem ikonuyla açılan pencereden değiştirilir. İmzaların hangi bölümlerde tarandığı: İmzalar isteğin hangi bölümlerinde taranır (Path, Query, Header, JSON, XML, Form ve Raw)?
Sık Karıştırılan Noktalar
- "Form gövdesi önce çözülür, sonra bölünür." Önce bölünür, sonra her ad ve değer ayrı çözülür; kodlanmış
&(%26) yeni bir alan oluşturmaz. - "URL decoding ayarı sorgu ve form değerlerini de etkiler." Ayar yalnızca path içindir; sorgu ve form değerleri her durumda ham ve bir kez çözülmüş hâlleriyle taranır.
- "Multipart alanları da çözülerek taranır." Multipart alanları ham hâliyle taranır; dosya içerikleri ayrıca Raw ayarlarıyla taranır (Yüklenen dosyaların içeriği de taranıyor mu (OWASP Check in Upload)?).
Dokümantasyonda nasıl yapılır
