ScanOps Docs

POST /api/link/check

Проверяет адрес сайта по нескольким независимым спискам угроз и реестру блокировок. Проверка идёт по хосту, а не по каждой странице.

Запрос

{ "url": "https://example.ru/login" }   // полная ссылка или голый домен
curl -s -X POST https://scanops.ru/api/link/check \
  -H 'Content-Type: application/json' \
  -d '{"url": "https://example.ru"}'

Ответ

{
  "host": "example.ru",
  "verdict": "clean",          // clean | suspicious | dangerous
  "sources": [
    { "id": "gsb",       "checked": true,  "flagged": false },
    { "id": "ysb",       "checked": true,  "flagged": false },
    { "id": "openphish", "checked": true,  "flagged": false },
    { "id": "urlhaus",   "checked": true,  "flagged": false },
    { "id": "dnsbl",     "checked": true,  "flagged": false, "detail": ["Quad9"] },
    { "id": "rkn",       "checked": true,  "flagged": false },
    { "id": "phishtank", "checked": false, "flagged": false }
  ]
}

Источники (id)

idЧто это
gsbGoogle Safe Browsing (фишинг + вредоносное ПО)
ysbЯндекс Safe Browsing
openphishOpenPhish — активный фишинг
urlhausabuse.ch URLHaus — раздача вредоносных файлов
dnsblКонсенсус фильтрующих DNS (Quad9, CleanBrowsing, Cloudflare, Comodo)
rknРеестр блокировок РФ
phishtankPhishTank (может быть выключен)

Вердикт

  • dangerous — хотя бы один список угроз (gsb/ysb/openphish/urlhaus/ phishtank) подтвердил вредоносность или фишинг.
  • suspicious — сработал только dnsbl или rkn: доступ где-то ограничен, но вредоносность не подтверждена (в реестр попадают и не связанные с безопасностью основания).
  • clean — никто не нашёл.

Инвариант честности

checked: false означает «источник не ответил», а не «чисто». Такой источник не голосует за вердикт. «Не найден в списках» — не то же самое, что «безопасен»: свежий вредоносный сайт может ещё не попасть ни в один список.

Ошибки

  • 400 — URL пустой, слишком длинный или отклонён SSRF-гардом.
  • 429 — превышен лимит по IP (по умолчанию 10 в час).