Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Middle+
4
Определение уязвимых устройств по CVE
Компании, где спрашивали:
Cybersec
Условие задачи
Необходимо построить структуру данных, в которой каждому идентификатору устройства (device_id) будет сопоставлено количество уязвимостей, обнаруженных для него. Ниже приведён пример реализации, который последовательно запрашивает страницы API, считает количество уязвимостей в каждом ответе и формирует итоговый словарь, а также суммарное количество уязвимостей.
def process_paginated_response(content, res):
total = 0
for item in content:
device_id = item["device_id"]
vuln_num = len(item["vulnerabilities"])
res[device_id] += vuln_num
total += vuln_num
return total
res = defaultdict(int)
total_ = 0
page_number = 1
while True:
url = f"{base_url}?page_number={page_number}"
content_ = requests.get(url, auth=(username, password)).json()
total_ += process_paginated_response(content_["results"], res)
if content_["more"] is False:
break
page_number += 1
print(json.dumps(dict(res), indent=4))
print(total_)