Перейти до основного вмісту

Додаток Г. Можливі методи тестування API

Приклад шаблону Додатку Г

Передумови

Типовий тестовий сценарій: Підключення до API з використанням TLS. Данні методи не є вичерпними та можуть бути розширенні.

Версія API (далі - api.example.com) відповідно до потреби:

  • АРІ MIS MEDLINK-CONF;
  • АРІ MIS MEDLINK-CONF2;
  • АРІ MIS MEDLINK-PI.

Доступ до API: Наявність ключів доступу та облікових записів

Методика тестування

ТестЗапитОчікуваний результат
Перевірка одностороннього Підключення (Крок 1)GET /api/v1/resource
HTTP/1.1 Host: api.example.com
Authorization: Bearer <access_token>
Отримати статус код 200 OK та валідні дані у відповіді
Перевірка одностороннього Підключення (Крок 2)POST /api/v1/resource HTTP/1.1
Host: api.example.com
Authorization: Bearer <access_token>
Content-Type: application/json
{
"key": "value"
}
Отримати статус код 201 Created та валідні дані у відповіді
Тестування Двостороннього Підключення (Крок 1)POST /api/v1/connect HTTP/1.1
Host: api.example.com
Authorization: Bearer <access_token>
Content-Type: application/json
{
"client_id": "client_123",
"action": "start_connection"
}
Отримати статус код 200 OK та підтвердження встановлення підключення
Тестування Двостороннього Підключення (Крок 2)POST /api/v1/data HTTP/1.1
Host: api.example.com
Authorization: Bearer <access_token>
Content-Type: application/json
{
"data": "sample_data"
}
Отримати статус код 200 OK та відповідь із збереженими даними
Перевірити, що всі запити вимагають валідний токен доступуGET /api/v1/resource HTTP/1.1
Host: api.example.com
Отримати статус код 401 Unauthorized
Перевірити, що всі запити вимагають валідний токен доступуGET /api/v1/resource HTTP/1.1
Host: api.example.com
Authorization: Bearer <invalid_token>
Отримати статус код 403 Forbidden
Перевірити, що всі запити вимагають валідний токен доступуGET /api/v1/resource HTTP/1.1
Host: api.example.com
Authorization: Bearer <expired_token>
Отримати статус код 401 Unauthorized
Перевірити, що всі дані передаються через HTTPSGET /api/v1/resource HTTP/1.1
Host: api.example.com
Отримати перенаправлення на HTTPS або статус код 403 Forbidden
Перевірка сертифікату TLSopenssl s_client -connect api.example.com:443 -showcertsСертифікат дійсний, всі сертифікати у ланцюжку дійсні
Перевірка шифруванняtestssl.sh --all api.example.comВикористовуються тільки рекомендовані шифри, немає слабких шифрів
Автентифікація та Авторизація: Перевірити, що всі запити вимагають валідний токен доступуGET /api/v1/resource HTTP/1.1
Host: api.example.com
Отримати статус код 401 Unauthorized
Автентифікація та Авторизація: Перевірити, що всі запити вимагають валідний токен доступуGET /api/v1/resource HTTP/1.1
Host: api.example.com
Authorization: Bearer <invalid_token>
Отримати статус код 403 Forbidden
Автентифікація та Авторизація: Перевірити, що всі запити вимагають валідний токен доступуGET /api/v1/resource HTTP/1.1
Host: api.example.com
Authorization: Bearer <expired_token>
Отримати статус код 401 Unauthorized
Шифрування: Перевірити, що всі дані передаються через HTTPSGET /api/v1/resource HTTP/1.1
Host: api.example.com
Отримати перенаправлення на HTTPS або статус код 403 Forbidden
Перевірка Сертифікату: Переконатися, що сертифікат TLS дійснийopenssl s_client -connect api.example.com:443Сертифікат дійсний, немає помилок
Перевірка Протоколу та Шифрів: Переконатися, що використовуються рекомендовані версії протоколів і шифрівnmap --script ssl-enum-ciphers -p 443 api.example.comВикористовуються рекомендовані протоколи (TLS 1.2 або 1.3) та шифри
Перевірка Шифрування: Виконати перевірку шифрування з використанням команди TestSSL.shtestssl.sh --all api.example.comВикористовуються тільки рекомендовані шифри, немає слабких шифрів