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 | Что это |
|---|---|
gsb | Google Safe Browsing (фишинг + вредоносное ПО) |
ysb | Яндекс Safe Browsing |
openphish | OpenPhish — активный фишинг |
urlhaus | abuse.ch URLHaus — раздача вредоносных файлов |
dnsbl | Консенсус фильтрующих DNS (Quad9, CleanBrowsing, Cloudflare, Comodo) |
rkn | Реестр блокировок РФ |
phishtank | PhishTank (может быть выключен) |
Вердикт
dangerous— хотя бы один список угроз (gsb/ysb/openphish/urlhaus/phishtank) подтвердил вредоносность или фишинг.suspicious— сработал толькоdnsblилиrkn: доступ где-то ограничен, но вредоносность не подтверждена (в реестр попадают и не связанные с безопасностью основания).clean— никто не нашёл.
Инвариант честности
checked: false означает «источник не ответил», а не «чисто». Такой источник не
голосует за вердикт. «Не найден в списках» — не то же самое, что «безопасен»:
свежий вредоносный сайт может ещё не попасть ни в один список.
Ошибки
400— URL пустой, слишком длинный или отклонён SSRF-гардом.429— превышен лимит по IP (по умолчанию 10 в час).