API de Safe Browsing Lookup (v4)

Descripción general

La API de Lookup permite que tus aplicaciones cliente envíen solicitudes a la Navegación segura para verificar si las URLs están incluidas en cualquiera de las listas de Navegación segura. Si se encuentra una URL en uno o más listas, se devuelve la información de coincidencia.

Verifica las URL

Para comprobar si una URL está en una lista de Navegación segura, envía una solicitud POST HTTP al threatMatches.find método:

  • La solicitud POST HTTP puede incluir hasta 500 URL. Las URLs deben ser válidas (consulta RFC 2396) pero no es necesario que estén canonicalizados ni codificados.
  • La respuesta HTTP POST muestra las URLs coincidentes junto con la duración de la caché.

Ejemplo: ThreatMatches.find

Solicitud HTTP POST

En el siguiente ejemplo, se envían dos listas de Navegación segura y tres URL al servidor para determinar si hay una coincidencia.

Encabezado de la solicitud

El encabezado de la solicitud incluye la URL de la solicitud y el tipo de contenido. Recuerda reemplazar tu clave de API para API_KEY en la URL.

  POST https://safebrowsing.googleapis.com/v4/threatMatches:find?key=API_KEY HTTP/1.1
  Content-Type: application/json
  

Cuerpo de la solicitud

El cuerpo de la solicitud incluye la información del cliente (ID y versión) y la información de la amenaza. (los nombres de las listas y las URL). Para obtener más detalles, consulta la cuerpo de la solicitudthreatMatches.find y las explicaciones que siguen al ejemplo del código.

  {
    "client": {
      "clientId":      "yourcompanyname",
      "clientVersion": "1.5.2"
    },
    "threatInfo": {
      "threatTypes":      ["MALWARE", "SOCIAL_ENGINEERING"],
      "platformTypes":    ["WINDOWS"],
      "threatEntryTypes": ["URL"],
      "threatEntries": [
        {"url": "http://www.urltocheck1.org/"},
        {"url": "http://www.urltocheck2.org/"},
        {"url": "http://www.urltocheck3.com/"}
      ]
    }
  }
Información del cliente

Los campos clientID y clientVersion deben identificar de manera inequívoca a una implementación cliente, no a una usuario individual. (La información del cliente se usa para el registro y la contabilización del servidor. Puedes elegir cualquier nombre para el ID de cliente, pero te sugerimos que elijas uno que represente la verdadera identidad del cliente, como el nombre de su empresa, presentados todas en una sola palabra y en minúsculas).

listas de Navegación segura

Los campos threatType, platformType y threatEntryType se combinan para identificar las listas de Navegación segura (nombre). En el ejemplo, se identifican dos listas: MALWARE/WINDOWS/URL y SOCIAL_ENGINEERING/WINDOWS/URL. Antes de enviar una solicitud, asegúrate de que el tipo las combinaciones que especifiques sean válidas (consulta Listas de Navegación segura).

URLs de amenazas

En el ejemplo, el array threatEntries contiene tres URLs (urltocheck1.org, urltocheck2.org, y urltocheck3.org) que se compararán con las dos listas de Navegación segura.

Nota: La API de Lookup y el método threatMatches siempre deben usar el campo URL, nunca el campo hash (consulta ThreatEntry).

Respuesta HTTP POST

En el siguiente ejemplo, la respuesta muestra una coincidencia; dos de las tres URL especificadas en el se encuentran en una de las dos listas de Navegación segura especificadas en la solicitud.

Encabezado de respuesta

El encabezado de respuesta incluye el código de estado HTTP y el tipo de contenido.

HTTP/1.1 200 OK
Content-Type: application/json

Cuerpo de la respuesta

El cuerpo de la respuesta incluye la información de coincidencia (los nombres de las listas y las URLs que se encuentran en esas listas, los metadatos (si están disponibles) y las duraciones de la caché). Para obtener más detalles, consulta la cuerpo de respuesta dethreatMatches.find y las explicaciones que siguen al ejemplo del código.

Nota: Si no hay coincidencias (es decir, si ninguna de las URLs especificadas) de la solicitud se encuentran en cualquiera de las listas especificadas en una solicitud), la respuesta HTTP POST solo muestra un objeto vacío en el cuerpo de la respuesta.

{
  "matches": [{
    "threatType":      "MALWARE",
    "platformType":    "WINDOWS",
    "threatEntryType": "URL",
    "threat":          {"url": "http://www.urltocheck1.org/"},
    "threatEntryMetadata": {
      "entries": [{
        "key": "malware_threat_type",
        "value": "landing"
     }]
    },
    "cacheDuration": "300.000s"
  }, {
    "threatType":      "MALWARE",
    "platformType":    "WINDOWS",
    "threatEntryType": "URL",
    "threat":          {"url": "http://www.urltocheck2.org/"},
    "threatEntryMetadata": {
      "entries": [{
        "key":   "malware_threat_type",
        "value": "landing"
     }]
    },
    "cacheDuration": "300.000s"
  }]
}
Mostrar coincidencias

El objeto matches incluye los nombres de las listas de Navegación segura y las URLs, si de que haya coincidencia. En el ejemplo, se encontraron dos URLs (urltocheck1.org y urltocheck2.org) en uno de las listas de Navegación segura (MALWARE/WINDOWS/URL), por lo que se devuelve la información coincidente. La tercera URL (urltocheck3.org) no se encontró en ninguna de las listas, por lo que no se devuelve información para esta URL.

Metadatos

El campo threatEntryMetadata es opcional y proporciona información adicional sobre que coinciden con la amenaza. Actualmente, los metadatos están disponibles para la lista de Navegación segura de MALWARE/WINDOWS/URL. (consulta Metadatos).

Duraciones de la caché

El campo cacheDuration indica la cantidad de tiempo que la URL debe considerarse no segura (consulta Almacenamiento en caché).