• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Yandex API

Rubrika

Member
10.11.2017
14
0
Пытаюсь сделать скрипт для проверки ссылки\домена на бан в яндексе через яндекс safery (API )

С python дружу слабо, раньше были проблемы с многомерными массивами, тут, судя по всему, тоже самое, но только с кортежами,
Собственно, код:
Python:
import requests

url = 'https://sba.yandex.net/v4/threatMatches:find?key=8c34cf8b-c807-48e4-be5d-566a2f7b6d15'

params = {"client": {"clientId": "dieterderouck", "clientVersion": "1.1.1"},
          "threatInfo": {"threatTypes": ["MALWARE", "SOCIAL_ENGINEERING"], "platformTypes": ["WINDOWS"],
                         "threatEntryTypes": ["URL"],
                         "threatEntries": [{"url": "http://malware-driveby.test.safebrowsing.yandex"}]}}

response = requests.post(url, data=params)



print(response)


Ответ всегда 400, токен верный
Подозрения - синтаксис параметров, они 100% неправильно оформлены, не могу толком разобраться со скобками
Ну и еще так и не нашел толком информации про clientId и clientVersion , если первое это имя аккаунта, оно верное, то вот где брать текущую версию - нет вариантов
 
Последнее редактирование:
Ты отсылаешь данные в виде post , а Яндекс хочет их в виде json .
То есть нужно слать через :
response = requests.post(url, json = params)
либо через
headers = {'content-type' : 'application/json'} response = requests.post(url, data=json.dumps(params) , headers = headers)
Сервер отвечает 200 , хотя один хрен ничего не отдает . Хз в чем там еще ошибка .
 
Ты отсылаешь данные в виде post , а Яндекс хочет их в виде json .
То есть нужно слать через :
response = requests.post(url, json = params)
либо через
headers = {'content-type' : 'application/json'} response = requests.post(url, data=json.dumps(params) , headers = headers)
Сервер отвечает 200 , хотя один хрен ничего не отдает . Хз в чем там еще ошибка .
да, разобрался, с json работает, пусть и не совсем корректно, но это уже косяк самого яндекса
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Курс AD