URL percent-encoding nedir?
Kısa cevap
Percent-encoding, URL'de özel anlamı olan ya da doğrudan yazılamayan karakterlerin % ve iki onaltılık haneyle yazılmasıdır: boşluk %20, / %2F, ? %3F, # %23 olur (RFC 3986). Harf, rakam ve - . _ ~ karakterlerinin kodlanmış ve kodlanmamış hâli aynı anlamı taşır (/a%62c ile /abc aynı path'tir); bu yüzden aynı adres farklı yazımlarla gelebilir ve yalnızca bir yazıma bakan kurallar atlatılabilir. TR7'de URL Normalization aksiyonu isteği Kurum Servisine iletmeden önce tek biçime getirir: Decode Percent-Encoded Characters yalnızca harf, rakam ve - . _ ~ karakterlerinin kodlamasını çözer, %2F ya da %3F gibi ayraç kodlamalarını çözmez; Make Percent-Encoded Characters Uppercase kodlamadaki harfleri büyük harfe çevirir (%2f → %2F); URL Encode # Character # karakterini %23 olarak kodlar. WAF tarafında path'in çözülmesi Checks penceresindeki URL Decoding ayarıyla belirlenir.
TR7'de Nerede Kullanılır
| Nerede | Alan / etiket | Ne için |
|---|---|---|
| Load Balancer → Actions (Policy Actions) → URL normalization formu | Normalization → Decode percent-encoded characters | Harf, rakam ve - . _ ~ kodlamalarını çözme (%61dmin → admin) |
| Aynı alan | Normalization → Make percent-encoded characters uppercase | Kodlamaları tek biçime getirme (%2f → %2F) |
| Aynı alan | Normalization → URL Encode # character | # karakterini %23 olarak kodlama |
| Left Monitor Panel → WAF-Protected vServices → vService → WAF Management → Checks kartı | URL Decoding | WAF incelemesinde path'in çözülmüş hâlinin kullanılması |
Normalization alanındaki seçenekler, alanda görüntülendikleri sırayla uygulanır; sıra sürükle-bırak ile değiştirilir (Normalization). WAF'ın query ve form değerlerini çözmesi ayara bağlı değildir: URL Decoding ayarı neyi etkiler; query ve form değerleri de decode edilir mi?
Sık Karıştırılan Noktalar
- "Bütün kodlamaları çözmek en güvenli yoldur."
%2Fgibi ayraçları çözmek path'in anlamını değiştirir; Decode Percent-Encoded Characters bu yüzden yalnızca harf, rakam ve- . _ ~kodlamalarını çözer.%25de çözülmediği için çok katmanlı kodlama (%252F) açılmaz. - "Kodlama yalnızca görünüş farkıdır." Kural ve imza eşleştirmesinde farklı yazımlar atlatma yolu olabilir; normalization ve WAF'taki URL decoding bu riski azaltır.
- "Bozuk kodlama içeren istek reddedilir." URL normalization bozuk percent-encoding içeren istekleri reddetmez; ilgili kısım olduğu gibi bırakılır.
Dokümantasyonda nasıl yapılır
