Додаток Г. Можливі методи тестування 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 |
Перевірити, що всі дані передаються через HTTPS | GET /api/v1/resource HTTP/1.1 Host: api.example.com | Отримати перенаправлення на HTTPS або статус код 403 Forbidden |
Перевірка сертифікату TLS | openssl 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 |
Шифрування: Перевірити, що всі дані передаються через HTTPS | GET /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.sh | testssl.sh --all api.example.com | Використовуються тільки рекомендовані шифри, немає слабких шифрів |