INTEGRITY Dokumentace

Normalizace kódovaných lomítek v cestě URL

Různé webové servery a aplikace zpracovávají kódovaná lomítka (%2F) v URL adresách odlišně. Cloudflare se řídí RFC 3986, který určuje, že %2F by nemělo se automaticky normalizuje na / protože / je v URL vyhrazený znak a jeho dekódování by mohlo změnit zamýšlený význam cesty.

Mnoho origin serverů však dělat automaticky dekóduje %2F do / při zpracování požadavků. Pokud se váš origin server chová tímto způsobem, můžete zvážit použití stejné normalizace na edge Cloudflare, abyste zajistili konzistenci při zpracování požadavků, vyhodnocování pravidel a protokolování.

Jak normalizovat %2F

Chcete-li normalizovat zakódovaná lomítka (%2F) na standardní lomítka (/) v cestě požadavku před následující vyhodnocení pravidla vytvořte nové pravidlo přepisu URL a definujte dynamický přepis cesty URL pomocí url_decode() funkce:

Text v Expression Editor:

(lower(raw.http.request.full_uri) wildcard "*%2f*")

Text za Cesta > Přepsat na > Dynamický:

url_decode(http.request.uri.path)

Tato transformace zajišťuje, že %2F je vždy zpracována jako / v cestě požadavku. To je užitečné zejména při nastavování pravidel závislých na shodě cesty URL, protože to zabraňuje nesrovnalostem způsobeným odlišným chováním normalizace.