Сгенерировать подпись API в заголовке запроса из параметров в теле запроса

Я использую OWASP ZAP для тестирования нашего API. У нас есть пара конечных точек POST, которые используют токен API и общий секрет для аутентификации и проверки запроса.

Некоторые параметры тела запроса объединяются и хешируются с использованием общего секрета. Это значение вставляется в заголовок запроса.

Как я могу программно сгенерировать эту подпись с помощью OWASP ZAP?

Заголовок запроса

Content-Type: "application/json"
Accept: "application/json"
API-Key: {API_KEY}
Signature: {hash(field_one + field_two + field_three + SHARED_SECRET)}

Тело запроса

{
    "field_one": "abc",
    "field_two": "123",
    "field_three": "xyz"
}

SHARED_SECRET - это пароль, который хранится локально клиентом и используется для хеширования трех полей запроса.

Он хранится на сервере вместе с API-ключом, чтобы запросы могли быть идентифицированы и проверены.


person Michael    schedule 06.04.2018    source источник


Ответы (1)


Используйте скрипт отправителя HTTP. Создайте его в пользовательском интерфейсе ZAP, чтобы вы могли тестировать его во время написания. Сначала убедитесь, что вы просто обнаруживаете запросы, которые хотите изменить, затем извлекаете нужные значения полей и, наконец, генерируете хэш. Продолжайте тестирование на каждом этапе, чтобы убедиться, что он делает то, что вам нужно. А если вам нужна конкретная помощь, всегда есть группа zaproxy-scripts.

person Simon Bennetts    schedule 11.04.2018