Как конструировать point'ы

Напомним, что вы можете использовать при конструировании point’ов следующие парсеры и фильтры:

В целях лучшего понимания того, какие имена парсеров и фильтров необходимо включить в point, его рекомендуется составлять справа налево. При конструировании point'а необходимо придерживаться принципа «от меньшего к большему».

Разделитель частей point'а

Напомним, что части point'а отделяются друг от друга символом нижнего подчеркивания _.

Пример 1

Допустим, вам необходимо сконструировать point, который будет указывать на декодированное значение параметра uid в следующем запросе:

GET http://example.com/main/login/?uid=MDEyMzQ=,

где MDEyMzQ= — это закодированная в BASE64 строка 01234.

  1. Так как требуется, чтобы point указывал на значение элемента запроса, в point необходимо включить служебное слово value.

    Текущий вид конструируемого point'а: value;

  2. Требуется, чтобы point указывал на незакодированное значение, но в запросе это значение закодировано в Base64. Для декодирования необходимого значения слева к point'у добавляется название парсера BASE64.

    Текущий вид конструируемого point'а: BASE64_value;

  3. Требуется, чтобы point указывал на значение параметра uid. Для обращения к значению нужного параметра слева к point'у добавляется имя параметра uid.

    Текущий вид конструируемого point'а: uid_BASE64_value;

  4. Требуется, чтобы point указывал на значение GET-параметра в базовом запросе. Чтобы обратиться к значению строкового параметра, слева к point'у добавляется название фильтра GET.

    Текущий вид конструируемого point'а: GET_uid_BASE64_value.

Для целей, указанных в условии примера, point, полученный на шаге 4, можно добавить в расширение:

  • Не окружив его служебными символами;
  • Окружив его апострофами ('GET_uid_BASE64_value');
  • Окружив его кавычками ("GET_uid_BASE64_value").

Пример 2

Допустим, вам необходимо сконструировать point, который будет указывать на значение 01234 параметра passwd в запросе

POST http://example.com/login/index.php HTTP/1.1
Content-Type: application/x-www-form-urlencoded

с телом

username=admin&passwd=01234.
  1. Так как требуется, чтобы point указывал на значение элемента запроса, в point необходимо включить служебное слово value.

    Текущий вид конструируемого point'а: value;

  2. Требуется, чтобы point указывал на значение параметра passwd. Для обращения к значению нужного параметра слева к point'у добавляется имя параметра passwd.

    Текущий вид конструируемого point'а: passwd_value;

  3. Требуется, чтобы point указывал на значение параметра, который передается в формате Form-urlencoded. Это можно понять из содержания заголовка Content-Type в базовом запросе. Чтобы обратиться к значению параметра в формате Form-urlencoded, слева к point'у добавляется название парсера Form_urlencoded в верхнем регистре.

    Текущий вид конструируемого point'а: FORM_URLENCODED_passwd_value;

  4. Требуется, чтобы point указывал на значение параметра, который передается в теле запроса. Чтобы обратиться к значению параметра в теле запроса, слева к point'у добавляется название фильтра POST.

    Текущий вид конструируемого point'а: POST_FORM_URLENCODED_passwd_value.

Для целей, указанных в условии примера, point, полученный на шаге 4, можно добавить в расширение:

  • Не окружив его служебными символами;
  • Окружив его апострофами ('POST_FORM_URLENCODED_passwd_value');
  • Окружив его кавычками ("POST_FORM_URLENCODED_passwd_value").

Пример 3

Допустим, вам необходимо сконструировать point, который будет указывать на значение abcde, которое содержится в cookie с именем secret-word в запросе

GET /main/index.php HTTP/1.1
Host: example.com
Cookie: username=John; secret-word=abcde.
  1. Так как требуется, чтобы point указывал на значение элемента запроса, в point необходимо включить служебное слово value.

    Текущий вид конструируемого point'а: value;

  2. Требуется, чтобы point указывал на значение cookie secret-word. Для обращения к значению нужного cookie слева к point'у добавляется имя cookie secret-word.

    Текущий вид конструируемого point'а: secret-word_value;

  3. Требуется, чтобы point указывал на значение cookie. Чтобы обратиться к значению cookie, слева к point'у добавляется название парсера COOKIE.

    Текущий вид конструируемого point'а: COOKIE_secret-word_value;

  4. Требуется, чтобы point указывал на значение, которое содержится в заголовке Cookie. Для обращения к заголовку с именем Cookie слева к point'у добавляется имя заголовка Cookie.

    Текущий вид конструируемого point'а: Cookie_COOKIE_secret-word_value;

  5. Требуется, чтобы point указывал на значение, которое содержится в заголовке. Для обращения к заголовку слева к point'у добавляется название фильтра HEADER.

    Текущий вид конструируемого point'а: HEADER_Cookie_COOKIE_secret-word_value.

Для целей, указанных в условии примера, point, полученный на шаге 5, можно добавить в расширение:

  • Не окружив его служебными символами;
  • Окружив его апострофами ('HEADER_Cookie_COOKIE_secret-word_value');
  • Окружив его кавычками ("HEADER_Cookie_COOKIE_secret-word_value").

results matching ""

    No results matching ""