Как конструировать point'ы
Напомним, что вы можете использовать при конструировании point’ов следующие парсеры и фильтры:
- HTTP-парсер:
- Парсер Form_urlencoded;
- Парсер Multipart;
- Парсер Cookie;
- Парсер XML:
- Парсер Json_doc:
- Парсер GZIP;
- Парсер Base64;
- Фильтр Array;
- Фильтр Hash.
В целях лучшего понимания того, какие имена парсеров и фильтров необходимо включить в point, его рекомендуется составлять справа налево. При конструировании point'а необходимо придерживаться принципа «от меньшего к большему».
Разделитель частей point'а
Напомним, что части point'а отделяются друг от друга символом нижнего подчеркивания _
.
Пример 1
Допустим, вам необходимо сконструировать point, который будет указывать на декодированное значение параметра uid
в следующем запросе:
GET http://example.com/main/login/?uid=MDEyMzQ=,
где MDEyMzQ=
— это закодированная в BASE64 строка 01234
.
Так как требуется, чтобы point указывал на значение элемента запроса, в point необходимо включить служебное слово
value
.Текущий вид конструируемого point'а:
value
;Требуется, чтобы point указывал на незакодированное значение, но в запросе это значение закодировано в Base64. Для декодирования необходимого значения слева к point'у добавляется название парсера
BASE64
.Текущий вид конструируемого point'а:
BASE64_value
;Требуется, чтобы point указывал на значение параметра
uid
. Для обращения к значению нужного параметра слева к point'у добавляется имя параметраuid
.Текущий вид конструируемого point'а:
uid_BASE64_value
;Требуется, чтобы 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.
Так как требуется, чтобы point указывал на значение элемента запроса, в point необходимо включить служебное слово
value
.Текущий вид конструируемого point'а:
value
;Требуется, чтобы point указывал на значение параметра
passwd
. Для обращения к значению нужного параметра слева к point'у добавляется имя параметраpasswd
.Текущий вид конструируемого point'а:
passwd_value
;Требуется, чтобы point указывал на значение параметра, который передается в формате Form-urlencoded. Это можно понять из содержания заголовка
Content-Type
в базовом запросе. Чтобы обратиться к значению параметра в формате Form-urlencoded, слева к point'у добавляется название парсера Form_urlencoded в верхнем регистре.Текущий вид конструируемого point'а:
FORM_URLENCODED_passwd_value
;Требуется, чтобы 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.
Так как требуется, чтобы point указывал на значение элемента запроса, в point необходимо включить служебное слово
value
.Текущий вид конструируемого point'а:
value
;Требуется, чтобы point указывал на значение cookie
secret-word
. Для обращения к значению нужного cookie слева к point'у добавляется имя cookiesecret-word
.Текущий вид конструируемого point'а:
secret-word_value
;Требуется, чтобы point указывал на значение cookie. Чтобы обратиться к значению cookie, слева к point'у добавляется название парсера
COOKIE
.Текущий вид конструируемого point'а:
COOKIE_secret-word_value
;Требуется, чтобы point указывал на значение, которое содержится в заголовке
Cookie
. Для обращения к заголовку с именем Cookie слева к point'у добавляется имя заголовкаCookie
.Текущий вид конструируемого point'а:
Cookie_COOKIE_secret-word_value
;Требуется, чтобы 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 ""
results matching ""
No results matching ""