meusov11
@meusov11

Как правильно получить API Google для проверок сайта на безопасность?

Всем привет!

В некоторых браузерах выходит предупреждение что: Осторожно, поддельный сайт! , Это небезопасный сайт, Deceptive site ahead

Создал скрипт на python, который будет считывать текстовый файл domains.txt и проверять в нем доменные имена, необходимо проверить чтобы на домене не выходило предупреждение: Осторожно, поддельный сайт! , Это небезопасный сайт, Deceptive site ahead.

Условия:
1. Если домен является поддельным (Осторожно, поддельный сайт! , Это небезопасный сайт, Deceptive site ahead) - необходимо создать текстовый файл block_domain.txt и записать его туда
2. Если домен не является поддельным (Осторожно, поддельный сайт! , Это небезопасный сайт, Deceptive site ahead) - необходимо создать файл white_domain.txt и записать его туда

Скрипт должен проверять информацию о домене на Safe Browsing site status.

Написал все это дело я на Python:

import urllib.request
import json

# Функция проверки безопасности домена на основе сервиса SafeBrowsing
def check_domain(domain):
    url = "https://safebrowsing.googleapis.com/v4/threatMatches:find"
    api_key = "тут мой API ключ" # мойAPI ключ
    headers = {"Content-Type": "application/json", "Authorization": f"Bearer {api_key}"}
    data = {
        "client": {
            "clientId": "mycompany",
            "clientVersion": "1.5.2"
        },
        "threatInfo": {
            "threatTypes": ["MALWARE", "SOCIAL_ENGINEERING", "UNWANTED_SOFTWARE", "POTENTIALLY_HARMFUL_APPLICATION"],
            "platformTypes": ["ANY_PLATFORM"],
            "threatEntryTypes": ["URL"],
            "threatEntries": [{"url": domain}]
        }
    }
    try:
        req = urllib.request.Request(url=url, headers=headers, data=json.dumps(data).encode("utf-8"))
        response = urllib.request.urlopen(req)
        result = json.loads(response.read().decode("utf-8"))
        if result.get("matches"):
            return True
        else:
            return False
    except urllib.error.HTTPError as e:
        print(f"HTTP Error: {e.code} - {e.reason}")
        return False

# Открытие файла для чтения
with open("domains.txt", "r") as file:
    # Открытие файлов для записи
    block_file = open("block_domain.txt", "w")
    white_file = open("white_domain.txt", "w")
    
    # Чтение каждой строки файла domains.txt
    for line in file:
        domain = line.strip() # Удаление пробелов и переносов строки
        if check_domain(domain):
            block_file.write(domain + "\n") # Запись в файл block_domain.txt
        else:
            white_file.write(domain + "\n") # Запись в файл white_domain.txt
    
    # Закрытие файлов
    block_file.close()
    white_file.close()


Так вот при запуске скрипта он мне выдает:

HTTP Error: 400 - Bad Request
HTTP Error: 400 - Bad Request
HTTP Error: 400 - Bad Request
HTTP Error: 400 - Bad Request


API ключе верный, никаких ограничений нет. Может сейчас что-то изменилось? Или для Россия какие-то ограничения есть (с vpn та же история)
  • Вопрос задан
  • 175 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
API токен должен передаваться в заголовке X-goog-api-key
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы