update-byte-match-set
Описание
Примечание
Это документация AWS WAF Classic. Для получения дополнительной информации см. AWS WAF Classic в руководстве разработчика.
Вставляет или удаляет объекты ByteMatchTuple (фильтры) в наборе ByteMatchSet. Для каждого ByteMatchTuple объекта вы указываете следующие значения:
- Нужно ли вставить или удалить объект из массива. Если вы хотите изменить объект
ByteMatchSetUpdate, вы удаляете существующий объект и добавляете новый. - Часть веб-запроса, которую вы хотите, чтобы AWS WAF проверял, например, строку запроса или значение заголовка
User-Agent. - Байты (обычно строка, соответствующая символам ASCII), которые вы хотите, чтобы AWS WAF искал. Для получения дополнительной информации, включая способ указания значений для API AWS WAF и командной строки AWS или SDK, см.
TargetStringв типе данных ByteMatchTuple. - Место поиска, например, в начале или конце строки запроса.
- Нужно ли выполнить какие-либо преобразования запроса, например, преобразовать его в нижний регистр, перед проверкой на указанную строку.
Например, вы можете добавить объект ByteMatchSetUpdate, который соответствует веб-запросам, в которых заголовки User-Agent содержат строку BadBot. Затем вы можете настроить AWS WAF на блокирование этих запросов.
Для создания и настройки ByteMatchSet выполните следующие действия:
- Создайте
ByteMatchSet.. Для получения дополнительной информации см. CreateByteMatchSet. - Используйте GetChangeToken для получения маркера изменения, который вы предоставляете в параметре
ChangeTokenзапросаUpdateByteMatchSet. - Отправьте запрос
UpdateByteMatchSet, чтобы указать часть запроса, которую вы хотите, чтобы AWS WAF проверял (например, заголовок или URI), и значение, которое вы хотите, чтобы AWS WAF проверял.
Для получения дополнительной информации о том, как использовать API AWS WAF для разрешения или блокирования HTTP-запросов, см. руководство разработчика AWS WAF.
См. также: Документация API AWS
Синтаксис
update-byte-match-set
--byte-match-set-id <value>
--change-token <value>
--updates <value>
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
[--cli-binary-format <value>]
[--no-cli-pager]
[--cli-auto-prompt]
[--no-cli-auto-prompt]
Параметры
--byte-match-set-id (строка)
ByteMatchSetId возвращается CreateByteMatchSet и ListByteMatchSets.--change-token (строка)
--updates (список)
Массив объектов ByteMatchSetUpdate, которые вы хотите вставить или удалить из набора ByteMatchSet. Для получения дополнительной информации см. соответствующие типы данных:
- ByteMatchSetUpdate: Содержит
ActionиByteMatchTuple - ByteMatchTuple: Содержит
FieldToMatch,PositionalConstraint,TargetStringиTextTransformation - FieldToMatch: Содержит
DataиType
(структура)
Примечание
Это документация AWS WAF Classic. Для получения дополнительной информации см. AWS WAF Classic в руководстве разработчика.
В запросе UpdateByteMatchSet, ByteMatchSetUpdate указывает, нужно ли вставить или удалить ByteMatchTuple и включает параметры для ByteMatchTuple.
Action -> (строка)
ByteMatchTuple -> (структура)
Информация о части веб-запроса, которую AWS WAF должен проверить, и значении, которое AWS WAF должен искать. Если вы укажете DELETE для значения Action , значения ByteMatchTuple должны точно совпадать со значениями в ByteMatchTuple, которые вы хотите удалить из ByteMatchSet.
FieldToMatch -> (структура)
Часть веб-запроса, которую AWS WAF должен искать, например, указанный заголовок или строку запроса. Дополнительную информацию см. в разделе FieldToMatch.
Type -> (строка)
Часть веб-запроса, которую AWS WAF должен искать для указанной строки. Части запроса, которые можно искать, включают:
-
HEADER: Указанный заголовок запроса, например, значение заголовкаUser-AgentилиReferer. Если вы выберитеHEADERдля типа, укажите имя заголовка вData. -
METHOD: HTTP-метод, который указывает тип операции, которую запрос просит выполнить у источника. Amazon CloudFront поддерживает следующие методы:DELETE,GET,HEAD,OPTIONS,PATCH,POSTиPUT. -
QUERY_STRING: Строка запроса, которая является частью URL, появляющейся после символа?, если таковой имеется. -
URI: Часть веб-запроса, которая идентифицирует ресурс, например,/images/daily-ad.jpg. -
BODY: Часть запроса, содержащая любые дополнительные данные, которые вы хотите отправить на ваш веб-сервер в качестве тела HTTP-запроса, например, данные из формы. Тело запроса сразу следует за заголовками запроса. Обратите внимание, что только первые8192байты тела запроса передаются AWS WAF для проверки. Чтобы разрешать или блокировать запросы на основе длины тела, вы можете создать набор ограничений размера. Дополнительную информацию см. в разделе CreateSizeConstraintSet. -
SINGLE_QUERY_ARG: Параметр в строке запроса, который будет проверяться, например, UserName или SalesRegion. Максимальная длинаSINGLE_QUERY_ARGсоставляет 30 символов. -
ALL_QUERY_ARGS: АналогичноSINGLE_QUERY_ARG, но вместо проверки одного параметра AWS WAF будет проверять все параметры в строке запроса на значение или шаблон регулярных выражений, указанные вTargetString.
Data -> (строка)
Когда значение Type равно HEADER, введите имя заголовка, который AWS WAF должен искать, например, User-Agent или Referer. Название заголовка не чувствительно к регистру.
Когда значение Type равно SINGLE_QUERY_ARG, введите имя параметра, который AWS WAF должен искать, например, UserName или SalesRegion. Название параметра не чувствительно к регистру.
Если значение Type — любое другое значение, опустите Data.
TargetString -> (blob)
Значение, которое вы хотите, чтобы AWS WAF искал. AWS WAF ищет указанную строку в части веб-запросов, указанных в FieldToMatch. Максимальная длина значения составляет 50 байт.
Допустимые значения зависят от значений, указанных для FieldToMatch:
-
HEADER: Значение, которое вы хотите, чтобы AWS WAF искал в заголовке запроса, указанном в FieldToMatch, например, значение заголовкаUser-AgentилиReferer. -
METHOD: HTTP-метод, который указывает тип операции, указанной в запросе. CloudFront поддерживает следующие методы:DELETE,GET,HEAD,OPTIONS,PATCH,POSTиPUT. -
QUERY_STRING: Значение, которое вы хотите, чтобы AWS WAF искал в строке запроса, которая является частью URL, появляющейся после символа?. -
URI: Значение, которое вы хотите, чтобы AWS WAF искал в части URL, идентифицирующей ресурс, например,/images/daily-ad.jpg. -
BODY: Часть запроса, содержащая любые дополнительные данные, которые вы хотите отправить на ваш веб-сервер в качестве тела HTTP-запроса, например, данные из формы. Тело запроса сразу следует за заголовками запроса. Обратите внимание, что только первые8192байта тела запроса передаются AWS WAF для проверки. Чтобы разрешать или блокировать запросы на основе длины тела, вы можете создать набор ограничений размера. Дополнительную информацию см. в разделе CreateSizeConstraintSet. -
SINGLE_QUERY_ARG: Параметр в строке запроса, который будет проверяться, например, UserName или SalesRegion. Максимальная длинаSINGLE_QUERY_ARGсоставляет 30 символов. -
ALL_QUERY_ARGS: АналогичноSINGLE_QUERY_ARG, но вместо проверки одного параметра AWS WAF проверяет все параметры в строке запроса на значение или шаблон регулярных выражений, указанные вTargetString.
Если TargetString содержит буквенные символы A-Z и a-z, обратите внимание, что значение чувствительно к регистру.
Укажите кодированную по основанию 64 версию значения. Максимальная длина значения перед кодированием по основанию 64 составляет 50 байт.
Например, предположим, что значение Type равно HEADER, а значение Data равно User-Agent. Если вы хотите искать в заголовке User-Agent значение BadBot, закодируйте BadBot с помощью кодирования MIME base64 и включите полученное значение QmFkQm90 в значение TargetString.
Значение, которое вы хотите, чтобы AWS WAF искал. SDK автоматически кодирует значение по основанию 64.
TextTransformation -> (строка)
Преобразования текста устраняют некоторые необычные форматирования, которые используют злоумышленники в веб-запросах, пытаясь обойти AWS WAF. Если вы укажете преобразование, AWS WAF выполнит преобразование над FieldToMatch перед проверкой его на соответствие.
Вы можете указать только один тип TextTransformation.
Когда вы беспокоитесь о том, что злоумышленники вводят команду командной строки операционной системы и используют необычное форматирование, чтобы скрыть часть или все команды, используйте этот параметр для выполнения следующих преобразований:
- Удалите следующие символы: “ ‘ ^
- Удалите пробелы перед следующими символами: / (
- Замените следующие символы на пробел: , ;
- Замените несколько пробелов одним пробелом
- Преобразуйте заглавные буквы (A-Z) в строчные (a-z)
Используйте этот параметр для замены следующих символов символом пробела (десятичное 32):
- f, подача формы, десятичное 12
- t, табуляция, десятичное 9
- n, перевод строки, десятичное 10
- r, возврат каретки, десятичное 13
- v, вертикальная табуляция, десятичное 11
- неразрывный пробел, десятичное 160
COMPRESS_WHITE_SPACE также заменяет несколько пробелов одним пробелом.
HTML_ENTITY_DECODE
Используйте этот параметр для замены кодированных HTML символов некодированными символами. HTML_ENTITY_DECODE выполняет следующие операции:
- Заменяет
(ampersand)quot;на" - Заменяет
(ampersand)nbsp;на неразрывный пробел, десятичное 160 - Заменяет
(ampersand)lt;на символ «меньше чем» - Заменяет
(ampersand)gt;на> - Заменяет символы, представленные в шестнадцатеричном формате,
(ampersand)#xhhhh;, на соответствующие символы - Заменяет символы, представленные в десятичном формате,
(ampersand)#nnnn;, на соответствующие символы
Используйте этот параметр для преобразования заглавных букв (A-Z) в строчные (a-z).
Используйте этот параметр для декодирования значения, закодированного в URL.
Укажите NONE, если вы не хотите выполнять никаких преобразований текста.
PositionalConstraint -> (строка)
В части веб-запроса, которую вы хотите искать (например, в строке запроса, если таковая имеется), укажите, где AWS WAF должен искать. Допустимые значения включают:
Указанная часть веб-запроса должна включать значение TargetString, но местоположение не имеет значения.
Указанная часть веб-запроса должна включать значение TargetString, и TargetString должно содержать только буквенно-цифровые символы или символ подчеркивания (A-Z, a-z, 0-9 или _). Кроме того, TargetString должно быть словом, что означает следующее:
-
TargetStringточно совпадает со значением указанной части веб-запроса, например, значением заголовка. -
TargetStringнаходится в начале указанной части веб-запроса и за ним следует символ, отличный от буквенно-цифрового или символа подчеркивания (_), например,BadBot;. -
TargetStringнаходится в конце указанной части веб-запроса и перед ним следует символ, отличный от буквенно-цифрового или символа подчеркивания (_), например,;BadBot. -
TargetStringнаходится посередине указанной части веб-запроса и перед ним, и после него следуют символы, отличные от буквенно-цифровых или символа подчеркивания (_), например,-BadBot;.
Значение указанной части веб-запроса должно точно совпадать со значением TargetString.
Значение TargetString должно находиться в начале указанной части веб-запроса.
Значение TargetString должно находиться в конце указанной части веб-запроса.
Сокращенная синтаксическая запись:
Action=string,ByteMatchTuple={FieldToMatch={Type=string,Data=string},TargetString=blob,TextTransformation=string,PositionalConstraint=string} ...
Синтаксис JSON:
[
{
"Action": "INSERT"|"DELETE",
"ByteMatchTuple": {
"FieldToMatch": {
"Type": "URI"|"QUERY_STRING"|"HEADER"|"METHOD"|"BODY"|"SINGLE_QUERY_ARG"|"ALL_QUERY_ARGS",
"Data": "string"
},
"TargetString": blob,
"TextTransformation": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE",
"PositionalConstraint": "EXACTLY"|"STARTS_WITH"|"ENDS_WITH"|"CONTAINS"|"CONTAINS_WORD"
}
}
...
]
--cli-input-json | --cli-input-yaml (строка) Считывает аргументы из предоставленной JSON-строки. JSON-строка следует формату, предоставленному --generate-cli-skeleton. Если другие аргументы предоставлены в командной строке, эти значения переопределят значения, предоставленные в JSON. Невозможно передавать произвольные двоичные значения с помощью значения, предоставленного в JSON, так как строка будет воспринята буквально. Это не может быть указано вместе с --cli-input-yaml.
--generate-cli-skeleton (строка) Выводит JSON-скелет в стандартный вывод без отправки запроса к API. Если предоставлено значение без значения или значение input, выводит пример JSON-ввода, который можно использовать в качестве аргумента для --cli-input-json. Аналогично, если предоставлено yaml-input, он выведет пример ввода YAML, который можно использовать с --cli-input-yaml. Если предоставлено значение output, он проверяет входные данные команды и возвращает пример выходного JSON для этой команды. Сгенерированный JSON-скелет не стабилен между версиями AWS CLI, и нет гарантии обратной совместимости в сгенерированном JSON-скелете.
Глобальные параметры
--debug (логическое значение)
Включить отладовую запись в журнал.
--endpoint-url (строка)
Переопределить значение по умолчанию URL команды на указанный URL.
--no-verify-ssl (логическое значение)
По умолчанию AWS CLI использует SSL при общении с AWS-сервисами. Для каждого SSL-соединения AWS CLI проверит SSL-сертификаты. Этот параметр переопределяет поведение проверки SSL-сертификатов по умолчанию.
--no-paginate (логическое значение)
Отключить автоматическую постраничную навигацию. Если автоматическая постраничная навигация отключена, AWS CLI выполнит только один вызов для первой страницы результатов.
--output (строка)
Стиль форматирования для выходных данных команды.
- json
- text
- table
- yaml
- yaml-stream
--query (строка)
Запрос JMESPath для фильтрации данных ответа.
--profile (строка)
Использовать определенный профиль из файла учетных данных.
--region (строка)
Регион для использования. Переопределяет настройки конфигурации/среды.
--version (строка)
Отобразить версию этого инструмента.
--color (строка)
Включить/отключить вывод цвета.
- on
- off
- auto
--no-sign-request (логическое значение)
Не подписывать запросы. Учетные данные не будут загружены, если этот аргумент предоставлен.
--ca-bundle (строка)
Файл сертификата CA для проверки SSL-сертификатов. Переопределяет настройки конфигурации/среды.
--cli-read-timeout (целое число)
Максимальное время чтения сокета в секундах. Если значение установлено в 0, чтение сокета будет выполняться блокирующим образом без таймаута. Значение по умолчанию составляет 60 секунд.
--cli-connect-timeout (целое число)
Максимальное время подключения к сокету в секундах. Если значение установлено в 0, подключение к сокету будет выполняться блокирующим образом без таймаута. Значение по умолчанию составляет 60 секунд.
--cli-binary-format (строка)
Стиль форматирования, используемый для двоичных блоков. Формат по умолчанию — base64. Формат base64 ожидает, что двоичные блоки будут предоставлены как закодированная в base64 строка. Формат raw-in-base64-out сохраняет совместимость с поведением AWS CLI V1, и двоичные значения должны передаваться буквально. При предоставлении содержимого из файла, которое сопоставляется с двоичным блоком, fileb:// всегда будет рассматриваться как двоичный и будет использовать содержимое файла напрямую независимо от настройки cli-binary-format. При использовании file:// содержимое файла должно быть должным образом отформатировано для настроенного cli-binary-format.
- base64
- raw-in-base64-out
--no-cli-pager (логическое значение)
Отключить пейджер CLI для вывода.
--cli-auto-prompt (логическое значение)
Автоматически запросить параметры ввода CLI.
--no-cli-auto-prompt (логическое значение)
Отключить автоматическое запрошение параметров ввода CLI.
Примеры
Примечание
Для использования следующих примеров необходимо установить и настроить AWS CLI. Дополнительную информацию см. в руководстве по началу работы в Руководстве пользователя AWS CLI.
Если не указано иное, все примеры используют правила цитирования Unix-подобных систем. Эти примеры необходимо адаптировать к правилам цитирования вашей оболочки. См. Использование кавычек со строками в Руководстве пользователя AWS CLI.
Для обновления набора соответствий байтов
Следующая update-byte-match-set команда удаляет объект ByteMatchTuple (фильтр) в наборе соответствий байтов:
aws waf update-byte-match-set --cli-binary-format raw-in-base64-out --byte-match-set-id a123fae4-b567-8e90-1234-5ab67ac8ca90 --change-token 12cs345-67cd-890b-1cd2-c3a4567d89f1 --updates Action="DELETE",ByteMatchTuple={FieldToMatch={Type="HEADER",Data="referer"},TargetString="badrefer1",TextTransformation="NONE",PositionalConstraint="CONTAINS"}
Дополнительную информацию см. в разделе Работа со строковыми условиями соответствия в Руководстве разработчика AWS WAF.
Вывод
ChangeToken -> (строка)
ChangeToken, для отправки запроса UpdateByteMatchSet. Вы также можете использовать это значение для запроса статуса запроса. Дополнительную информацию см. в разделе GetChangeTokenStatus.
© Copyright 2025, Amazon Web Services. Created using Sphinx.