← Правила Cloudflare / rules / normalization
Как работает нормализация URL
Нормализация URL изменяет разделители, закодированные элементы и буквальные байты во входящих URL-адресах, приводя их к единому формату.
Например, рассмотрим пользовательское правило WAF, которое блокирует запросы с URL-адресами, совпадающими с www.example.com/hello. Правило не заблокирует запрос, содержащий закодированный элемент: www.example.com/%68ello. Нормализация входящих URL в глобальной сети Cloudflare помогает упростить выражения правил, содержащие URL.
Доступны два типа нормализации URL:
Место выполнения нормализации URL зависит от настроенные параметры.
Примеры различных настроек и их влияния на URL-адреса запросов см. в Примеры нормализации URL.
Нормализация по RFC 3986
Нормализация URL, выполняемая согласно RFC 3986 ↗ выглядит следующим образом:
- Следующими незарезервированными символами являются декодировано из percent-encoding ↗ (преобразовано из их
%XXзакодированную форму обратно в исходный символ):- Буквенные символы:
a-z,A-Z(декодировано из%41-%5Aи%61-%7A) - Цифровые символы:
0-9(декодировано из%30-%39) - дефис
-(%2D), точка.(%2E), подчёркивание_(%5F), и тильда~(%7E)
- Буквенные символы:
- Следующие зарезервированные символы не кодируются и не декодируются:
: / ? # [ ] @ ! $ & ' ( ) * + , ; = - Остальные символы, например буквальные значения байтов, кодируются в процентной кодировке.
- Представления в процентной кодировке приводятся к верхнему регистру.
- Пути URL нормализуются согласно Remove Dot Segments ↗ протокол.
Нормализация Cloudflare
При использовании нормализации URL в Cloudflare к URL входящих запросов применяются дополнительные приёмы нормализации в следующем порядке:
- Нормализация обратных косых черт (
\) на прямые косые черты (/). - Объединяйте несколько идущих подряд косых черт (например,
//будет нормализован в/). - Выполнение Нормализация по RFC 3986 результирующего URL-адреса.