Sicurezza e affidabilità · Prodotto DomScan

API Scanner delle vulnerabilità dei siti web

Individua software esposto, configurazioni rischiose e versioni note come vulnerabili in un sito web pubblico. Ogni risultato spiega che cosa è stato controllato, perché è stata rilevata una corrispondenza e quanto sono solide le prove.

Cosa ottieni

Individua software esposto, configurazioni rischiose e versioni note come vulnerabili in un sito web pubblico. Ogni risultato spiega che cosa è stato controllato, perché è stata rilevata una corrispondenza e quanto sono solide le prove.

SincronaRESTMCPSDKStrumento interattivo

Scegli questo prodotto quando

A chi è rivolto

Usa controlli passivi con limiti definiti per arricchire triage e analisi, non per sostituire test autorizzati o revisione umana.

Scegli questo prodotto quando

Sceglilo per prove passive di versioni e configurazioni esposte. Non sfrutta il target e non dimostra che il sito sia privo di vulnerabilità.

Cosa ottieni

Individua software esposto, configurazioni rischiose e versioni note come vulnerabili in un sito web pubblico. Ogni risultato spiega che cosa è stato controllato, perché è stata rilevata una corrispondenza e quanto sono solide le prove.

Endpoint

Esamina le operazioni, gli input, gli output, le modalità di esecuzione e i limiti di risposta supportati prima dell’integrazione.

GET /v1/vulnerabilities Vedi il riferimento API

Crediti e autenticazione

8-12 Autenticazione richiesta. Consulta il riferimento dell’operazione per il costo esatto e gli eventuali prezzi per elemento.

Operazione di esempio

Usa operazioni documentate per raccogliere, valutare, arricchire, verificare, confrontare, proteggere o monitorare prove pubbliche.

GET /v1/vulnerabilities Crediti: 8-12

Parametri di query

Parametro Tipo obbligatorio
url string facoltativo
domain string facoltativo
mode string
Valori consentiti standarddeep
Predefinito standard
facoltativo

Campi della risposta

Campo Tipo
target object
target.requested_url string
target.final_url string
target.hostname string
scan object
scan.mode string
scan.status string
scan.checked_at string
scan.duration_ms integer
scan.disclaimer string
summary object
summary.posture string
summary.risk_level string
summary.finding_count integer
summary.version_affected_count integer
summary.misconfiguration_count integer
summary.urgent_count integer
summary.severity_counts object
findings[] object[]
findings[] object
findings[].fingerprint string
findings[].classification string
findings[].severity string
findings[].priority string
findings[].title string
findings[].summary string
findings[].component object
findings[].component.technology_id string
findings[].component.name string
findings[].component.detected_version string
findings[].component.version_kind string
findings[].component.confidence string
findings[].component.confidence_score integer
findings[].component.ecosystem string
findings[].component.package string
findings[].component.purl string
findings[].advisory object
findings[].advisory.id string
findings[].advisory.aliases[] string[]
findings[].advisory.cves[] string[]
findings[].advisory.published_at string | null
findings[].advisory.modified_at string | null
findings[].advisory.cvss[] object[]
findings[].advisory.cvss[] object
findings[].advisory.cvss[].type string
findings[].advisory.cvss[].vector string
findings[].advisory.fixed_versions[] string[]
findings[].advisory.affected_ranges[] object[]
findings[].advisory.affected_ranges[] object
findings[].advisory.references[] string[]
findings[].exploitation object
findings[].exploitation.cisa_kev boolean | null
findings[].exploitation.kev_added_at string | null
findings[].exploitation.kev_required_action string | null
findings[].exploitation.known_ransomware_use string | null
findings[].exploitation.epss_probability number | null
findings[].exploitation.epss_percentile number | null
findings[].exploitation.epss_date string | null
findings[].evidence object
findings[].evidence.confidence string
findings[].evidence.observed[] string[]
findings[].evidence.limitations[] string[]
findings[].remediation object
findings[].remediation.summary string
findings[].remediation.fixed_versions[] string[]
findings[].sources[] string[]
components[] object[]
components[] object
components[].technology_id string
components[].name string
components[].detected_version string | null
components[].version_kind string | null
components[].confidence string
components[].advisory_status string
components[].matched_advisories integer
coverage object
coverage.target_response string
coverage.technology_detection string
coverage.package_advisories string
coverage.known_exploitation string
coverage.exploitation_probability string
coverage.detected_components integer
coverage.versioned_components integer
coverage.advisory_eligible_components integer
coverage.advisory_checked_components integer
coverage.advisory_deferred_components integer
coverage.advisory_query_limit integer
coverage.relay_used boolean
coverage.limitations[] string[]
sources[] object[]
sources[] object
sources[].id string
sources[].name string
sources[].owner string
sources[].url string
sources[].status string
sources[].retrieved_at string | null
sources[].cache_hit boolean
sources[].expected_freshness string
sources[].fallback_behavior string
sources[].cost string
_meta object

Richiesta di esempio

curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/vulnerabilities?url=https%3A%2F%2Fexample.com&domain=example.com&mode=standard"
const response = await fetch("https://domscan.net/v1/vulnerabilities?url=https%3A%2F%2Fexample.com&domain=example.com&mode=standard", {
  headers: { "X-API-Key": process.env.DOMSCAN_API_KEY },
});
const data = await response.json();
console.log(data);
import os
import requests

response = requests.get(
    "https://domscan.net/v1/vulnerabilities?url=https%3A%2F%2Fexample.com&domain=example.com&mode=standard",
    headers={"X-API-Key": os.environ["DOMSCAN_API_KEY"]},
)
print(response.json())
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, err := http.NewRequest(http.MethodGet, "https://domscan.net/v1/vulnerabilities?url=https%3A%2F%2Fexample.com&domain=example.com&mode=standard", nil)
	if err != nil {
		panic(err)
	}
	req.Header.Set("X-API-Key", os.Getenv("DOMSCAN_API_KEY"))

	resp, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()

	data, err := io.ReadAll(resp.Body)
	if err != nil {
		panic(err)
	}
	fmt.Println(resp.Status, string(data))
}
require "json"
require "net/http"

uri = URI("https://domscan.net/v1/vulnerabilities?url=https%3A%2F%2Fexample.com&domain=example.com&mode=standard")
request = Net::HTTP::Get.new(uri)
request["X-API-Key"] = ENV.fetch("DOMSCAN_API_KEY")

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
  http.request(request)
end
puts JSON.pretty_generate(JSON.parse(response.body))

Risposta di esempio

{
  "target": {
    "requested_url": "https://www.example.com/",
    "final_url": "https://www.example.com/",
    "hostname": "www.example.com"
  },
  "scan": {
    "mode": "standard",
    "status": "complete",
    "checked_at": "2026-10-09T10:15:30.000Z",
    "duration_ms": 3120,
    "disclaimer": "A clean result means DomScan did not detect an issue within the documented scan coverage. Automated scanning cannot prove that an application is vulnerability-free or replace an authorized penetration test."
  },
  "summary": {
    "posture": "review",
    "risk_level": "medium",
    "finding_count": 2,
    "version_affected_count": 0,
    "misconfiguration_count": 2,
    "urgent_count": 0,
    "severity_counts": {
      "critical": 0,
      "high": 0,
      "medium": 1,
      "low": 1,
      "info": 0,
      "unknown": 0
    }
  },
  "findings": [
    {
      "fingerprint": "configuration:content-security-policy:www.example.com",
      "classification": "security_misconfiguration",
      "severity": "medium",
      "priority": "elevated",
      "title": "Content Security Policy is not advertised",
      "summary": "The observed response did not include a Content-Security-Policy header.",
      "evidence": {
        "confidence": "high",
        "observed": [
          "Public response did not include the expected content-security-policy protection."
        ],
        "limitations": [
          "header_policy_can_vary_by_path_or_response_status"
        ]
      },
      "remediation": {
        "summary": "Deploy a restrictive Content Security Policy in report-only mode first, then enforce it.",
        "fixed_versions": []
      },
      "sources": [
        "target_response"
      ]
    },
    {
      "fingerprint": "configuration:referrer-policy:www.example.com",
      "classification": "security_misconfiguration",
      "severity": "low",
      "priority": "normal",
      "title": "Referrer Policy is not advertised",
      "summary": "The response did not include an explicit Referrer-Policy header.",
      "evidence": {
        "confidence": "high",
        "observed": [
          "Public response did not include the expected referrer-policy protection."
        ],
        "limitations": [
          "header_policy_can_vary_by_path_or_response_status"
        ]
      },
      "remediation": {
        "summary": "Choose and deploy a Referrer-Policy that matches the application privacy and analytics requirements.",
        "fixed_versions": []
      },
      "sources": [
        "target_response"
      ]
    }
  ],
  "components": [
    {
      "technology_id": "jquery",
      "name": "jQuery",
      "detected_version": "3.7.1",
      "version_kind": "asset",
      "confidence": "high",
      "advisory_status": "checked",
      "matched_advisories": 0
    },
    {
      "technology_id": "cloudflare",
      "name": "Cloudflare",
      "detected_version": null,
      "version_kind": null,
      "confidence": "high",
      "advisory_status": "mapping_unavailable",
      "matched_advisories": 0
    }
  ],
  "coverage": {
    "target_response": "checked",
    "technology_detection": "checked",
    "package_advisories": "checked",
    "known_exploitation": "not_requested",
    "exploitation_probability": "not_requested",
    "detected_components": 2,
    "versioned_components": 1,
    "advisory_eligible_components": 1,
    "advisory_checked_components": 1,
    "advisory_deferred_components": 0,
    "advisory_query_limit": 20,
    "relay_used": true,
    "limitations": [
      "Only exact reviewed technology-to-package mappings are checked against OSV.",
      "Versionless or semantically incompatible detections are not reported as vulnerable.",
      "This passive scan does not send exploit payloads or prove exploitability.",
      "Response headers and exposed versions can vary by path, edge location, or authentication state."
    ]
  },
  "sources": [
    {
      "id": "target_response",
      "name": "Observed public response",
      "owner": "Target website",
      "url": "https://domscan.net/tech-stack-api",
      "status": "checked",
      "retrieved_at": "2026-10-09T10:15:30.000Z",
      "cache_hit": false,
      "expected_freshness": "Live at scan time",
      "fallback_behavior": "Unavailable signals remain unknown and never imply that the target is unaffected",
      "cost": "none"
    },
    {
      "id": "osv",
      "name": "OSV",
      "owner": "Google Open Source Security Team",
      "url": "https://google.github.io/osv.dev/",
      "status": "checked",
      "retrieved_at": "2026-10-09T10:15:29.000Z",
      "cache_hit": false,
      "expected_freshness": "OSV targets advisory freshness within 15 minutes",
      "fallback_behavior": "Use a fresh cached result when available; otherwise mark the component advisory check unknown",
      "cost": "none"
    },
    {
      "id": "cisa_kev",
      "name": "CISA Known Exploited Vulnerabilities Catalog",
      "owner": "Cybersecurity and Infrastructure Security Agency",
      "url": "https://www.cisa.gov/known-exploited-vulnerabilities-catalog",
      "status": "not_requested",
      "retrieved_at": null,
      "cache_hit": false,
      "expected_freshness": "Catalog changes are checked hourly",
      "fallback_behavior": "Use a fresh cached catalog when available; otherwise leave exploitation status unknown",
      "cost": "none"
    },
    {
      "id": "first_epss",
      "name": "Exploit Prediction Scoring System",
      "owner": "FIRST",
      "url": "https://www.first.org/epss/",
      "status": "not_requested",
      "retrieved_at": null,
      "cache_hit": false,
      "expected_freshness": "Scores are generated daily",
      "fallback_behavior": "Return the advisory without an EPSS value and mark exploitation probability unknown",
      "cost": "none"
    }
  ],
  "_meta": {
    "served_by": "pop=MAD country=ES",
    "analysis_status": "complete"
  }
}

Codici di stato HTTP

  • 200 OK
  • 400 Richiesta non valida
  • 401 Non autorizzato
  • 402 Pagamento richiesto
  • 429 Troppe richieste
  • 503 Servizio non disponibile

Domande frequenti

Dove posso trovare il riferimento di richiesta e risposta di Scanner delle vulnerabilità dei siti web?

Usa il riferimento API di Scanner delle vulnerabilità dei siti web per esaminare parametri, campi di risposta, esempi, codici di stato e modalità operative supportate.

Come devo interpretare i risultati sconosciuti o incompleti di Scanner delle vulnerabilità dei siti web?

I risultati sconosciuti o parziali indicano che le prove richieste non hanno potuto essere determinate completamente. Conserva stato del risultato, confidenza, aggiornamento e limiti nelle decisioni successive.

Come viene tariffato Scanner delle vulnerabilità dei siti web?

Il prezzo dipende dall’operazione e dalla modalità di esecuzione. Consulta il riferimento dell’endpoint per il costo attuale in crediti, il requisito di autenticazione e le regole per elemento.

Usato da persone di queste aziende

InstantOutseerMongoDBRespondentSage Expense ManagementInstantlyD.R. HortonWhatConvertsAdobeLLM Pulse