API
Alle rapporter kan hentes som JSON, så I kan bygge scanningen ind i jeres egne dashboards, SIEM eller CI/CD. API'et er gratis og kræver ingen nøgle, men har rate limits.
Kør en fuld scanning
curl -s "https://securityconsulting.dk/scanner/api.php?action=scan&domain=firma.dk"
Kaldet er synkront og tager typisk 30–90 sekunder. Resultater for samme domæne genbruges i 10 minutter. Tilføj &fresh=1 for at tvinge en ny scanning. Grænse: 6 nye scanninger pr. time pr. IP.
Hent en eksisterende rapport
curl -s "https://securityconsulting.dk/scanner/api.php?action=report&id=<rapport-id>"
Svarformat (forkortet)
{
"id": "9f3c…",
"domain": "firma.dk",
"grade": "B",
"score": 81,
"counts": { "critical": 0, "high": 1, "medium": 3, "low": 6, "info": 4, "pass": 12 },
"priorities": [ { "id": "email.dmarc.none", "severity": "medium", "title": "…", "module": "email" } ],
"nis2": { "g": { "label": "Art. 21(2)(g) – …", "open": 3, "ok": 5 } },
"modules": {
"email": {
"score": 70, "grade": "C",
"findings": [ {
"id": "email.dmarc.none", "severity": "medium",
"title": "…", "detail": "…", "fix": "…", "fix_code": "…",
"nis2": ["g","j"], "cfcs": ["mail"], "evidence": null
} ],
"data": { "mx": […], "spf": […], "dmarc": […], "dkim": {…}, "dnssec": {…} }
},
"tls": {…}, "web": {…}, "subdomains": {…}, "lookalike": {…}, "exposure": {…}
},
"report_url": "https://securityconsulting.dk/scanner/report.php?id=9f3c…"
}
Eksempel: fejl i CI ved kritiske fund
crit=$(curl -s "https://securityconsulting.dk/scanner/api.php?action=scan&domain=firma.dk" | jq '.counts.critical + .counts.high')
[ "$crit" -eq 0 ] || { echo "Eksterne sikkerhedsfund: $crit"; exit 1; }Stabile id'er
Fund-id'er som email.dmarc.none eller exposure.port.3389 er stabile på tværs af scanninger. Brug dem til at følge udviklingen og undertrykke accepterede risici i jeres egne værktøjer.
Brug for mere?
Højere grænser, aktiv scanning af hele IP-ranges eller et dedikeret dashboard: kontakt os.