Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
4
Подсчёт количества уязвимостей за 2023 и 2024 годы
Компании, где спрашивали:
Cybersec
Условие задачи
Необходимо определить, сколько уязвимостей имеет идентификатор, начинающийся с CVE‑2023 и сколько – с CVE‑2024, получая данные постранично из API. Ниже приведён пример решения на Python, которое последовательно запрашивает страницы, агрегирует количество уязвимостей для каждого устройства и подсчитывает общую сумму.
from collections import defaultdict
import requests, json
def aggregate_page(data_page, counters):
page_total = 0
for entry in data_page:
dev_id = entry["device_id"]
vuln_count = len(entry["vulnerabilities"])
counters[dev_id] += vuln_count
page_total += vuln_count
return page_total
counters = defaultdict(int)
overall_total = 0
page_idx = 1
while True:
api_url = f"{base_url}?page_number={page_idx}"
response = requests.get(api_url, auth=(username, password)).json()
overall_total += aggregate_page(response["results"], counters)
if response["more"] is False:
break
page_idx += 1
print(json.dumps(dict(counters), indent=4))
print(overall_total)