API de Safe Browsing Lookup (v4)

Descripción general

La API de Lookup permite que tus aplicaciones cliente envíen solicitudes a los servidores de Navegación segura para verificar si las URL se incluyen en alguna de sus listas de Navegación segura. Si se encuentra una URL en una o más listas, se muestra la información de coincidencia.

Verifica las URL

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

  • La solicitud HTTP POST puede incluir hasta 500 URL. Las URL deben ser válidas (consulta RFC 2396), pero no es necesario que se las canonicaliza ni se codifiquen.
  • 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 sustituir tu clave de API por 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 sobre las amenazas (los nombres de las listas y las URLs). Para obtener más detalles, consulta el cuerpo de la solicitudthreatMatches.find y las explicaciones que siguen al ejemplo de 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 única una implementación cliente, no un usuario individual. (La información del cliente se usa para el registro y la contabilidad 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 tu empresa, presentado como una sola palabra, en letras minúsculas.

Listas de Navegación segura

Los campos threatType, platformType y threatEntryType se combinan para identificar las listas de Navegación segura de (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 las combinaciones de tipo 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 la solicitud 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 URL que se encuentran en esas listas, los metadatos, si están disponibles, y las duraciones de la caché). Para obtener más detalles, consulta el cuerpo de la respuestathreatMatches.find y las explicaciones que siguen al ejemplo de código.

Nota: Si no hay coincidencias (es decir, si ninguna de las URL especificadas en la solicitud se encuentra en cualquiera de las listas especificadas en una solicitud), la respuesta HTTP POST simplemente 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

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

Metadata

El campo threatEntryMetadata es opcional y proporciona información adicional sobre la coincidencia de 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é).