Использование Google (бета) API веб-рисков - PullRequest
0 голосов
/ 04 октября 2019

Я пытаюсь использовать API веб-риска Google (бета) с моим кодом Python. См. Пример кода: -

 URI='http://www.amazongroupco.org'  # bad url
 key='key=<mykey>'
 threat='&threatTypes=MALWARE'
 queryurl='https://webrisk.googleapis.com/v1beta1/uris:search?'
 requeststring=queryurl+key+threat
 header={"Content-Type":"application/json"}
 payload = {'uri':URI }

 try:

   req = requests.get(requeststring, headers=header, params=payload)
   print(req.url)

   if (req.status_code == 200):
     print(req)
   else:
      print(" ERROR:",req)

 except Exception as e:
        print(" Google API returned error:",e, req.url)

Приведенный выше код всегда возвращает код состояния успешного запроса "Response [200] OK" с пустым ответом jason {}. Тот факт, что это вредоносный сайт, я ожидал, что он вернет что-то в ответе Джейсона. Я пытался сделать это и с другими вредоносными сайтами, но получил тот же ответ - пустой объект jason со статусом 200 OK.
Я что-то упустил? Я понимаю, что некоторые сайты могут не иметь вредоносных программ, но являются сайтами социальной инженерии, что является еще одним видом угроз. Поэтому мне интересно, есть ли у меня универсальный атрибут ThreatTypes общего назначения, который будет возвращать объект jason, независимо от того, какая это угроза, если она является угрозой. Еще одно замечание: любой, кто пытается это сделать, должен иметь учетную запись GCP для генерации ключа. Любое руководство здесь будет высоко ценится.

1 Ответ

0 голосов
/ 24 октября 2019

Я также проверил API веб-риска, и он работает, и я также воспроизвел вашу проблему, и я получил тот же результат. Проверяемый вами URL не рассматривается Google как угроза вредоносного ПО. Честно говоря, я пробовал различные типы потоков для этого конкретного URL, и кажется, что его нет в списках Google.

Здесь вы можете найти список всех типов нитей, которые вы можете использовать. Существует тип для ситуации, которую вы описали: THREAT_TYPE_UNSPECIFIED, но он возвращает ошибку json - неверный аргумент, всегда, и это предполагаемое поведение.

Следует также отметить, что, как указано в официальной документации, вы должны использовать REST API с кодированным URI:

URL-адрес должен быть действительным (см. RFC 2396), ноего не нужно канонизировать.

Если вы используете REST API, вы должны закодировать параметры GET, такие как URI.

...