Method: threatListUpdates.fetch

Mengambil pembaruan daftar ancaman terbaru. Klien dapat meminta pembaruan untuk beberapa daftar sekaligus.

Permintaan HTTP

POST https://safebrowsing.googleapis.com/v4/threatListUpdates:fetch

URL menggunakan sintaksis gRPC Transcoding.

Isi permintaan

Isi permintaan memuat data dengan struktur berikut:

Representasi JSON
{
  "client": {
    object (ClientInfo)
  },
  "listUpdateRequests": [
    {
      object (ListUpdateRequest)
    }
  ]
}
Kolom
client

object (ClientInfo)

Metadata klien.

listUpdateRequests[]

object (ListUpdateRequest)

Pembaruan daftar ancaman yang diminta.

Isi respons

Jika berhasil, isi respons memuat data dengan struktur berikut:

Representasi JSON
{
  "listUpdateResponses": [
    {
      object (ListUpdateResponse)
    }
  ],
  "minimumWaitDuration": string
}
Kolom
listUpdateResponses[]

object (ListUpdateResponse)

Pembaruan daftar yang diminta oleh klien. Jumlah respons di sini mungkin kurang dari jumlah permintaan yang dikirim oleh klien. Hal ini terjadi, misalnya, jika server tidak memiliki pembaruan untuk daftar tertentu.

minimumWaitDuration

string (Duration format)

Durasi minimum yang harus ditunggu klien sebelum mengeluarkan permintaan update. Jika kolom ini tidak disetel, klien dapat diperbarui sesegera mungkin.

Durasi dalam detik dengan maksimal sembilan digit pecahan, yang diakhiri dengan 's'. Contoh: "3.5s".

ListUpdateRequest

Satu permintaan pembaruan daftar.

Representasi JSON
{
  "threatType": enum (ThreatType),
  "platformType": enum (PlatformType),
  "threatEntryType": enum (ThreatEntryType),
  "state": string,
  "constraints": {
    object (Constraints)
  }
}
Kolom
threatType

enum (ThreatType)

Jenis ancaman yang ditimbulkan oleh entri yang ada dalam daftar.

platformType

enum (PlatformType)

Jenis platform yang berisiko berdasarkan entri yang ada dalam daftar.

threatEntryType

enum (ThreatEntryType)

Jenis entri yang ada dalam daftar.

state

string (bytes format)

Status klien saat ini untuk daftar yang diminta (status klien terenkripsi yang diterima dari pembaruan daftar terakhir yang berhasil).

String berenkode base64.

constraints

object (Constraints)

Batasan yang terkait dengan permintaan ini.

Batasan

Batasan untuk update ini.

Representasi JSON
{
  "maxUpdateEntries": integer,
  "maxDatabaseEntries": integer,
  "region": string,
  "supportedCompressions": [
    enum (CompressionType)
  ],
  "language": string,
  "deviceLocation": string
}
Kolom
maxUpdateEntries

integer

Ukuran maksimum dalam jumlah entri. Update tidak akan berisi lebih banyak entri dari nilai ini. Ini harusnya pangkat 2 antara 2**10 dan 2**20. Jika nol, tidak ada batas ukuran update yang ditetapkan.

maxDatabaseEntries

integer

Menetapkan jumlah maksimum entri yang bersedia dimiliki klien dalam database lokal untuk daftar yang ditentukan. Ini harusnya pangkat 2 antara 2**10 dan 2**20. Jika nol, tidak ada batas ukuran database yang ditetapkan.

region

string

Meminta daftar untuk lokasi geografis tertentu. Jika tidak disetel, server dapat memilih nilai tersebut berdasarkan alamat IP pengguna. Mengharuskan format ISO 3166-1 alpha-2.

supportedCompressions[]

enum (CompressionType)

Jenis kompresi yang didukung oleh klien.

language

string

Meminta daftar untuk bahasa tertentu. Mengharuskan format ISO 639 alpha-2.

deviceLocation

string

Lokasi fisik klien, yang dinyatakan sebagai kode wilayah ISO 31166-1 alpha-2.

CompressionType

Cara yang digunakan untuk mengompresi kumpulan entri ancaman.

Enum
COMPRESSION_TYPE_UNSPECIFIED Tak diketahui.
RAW Data mentah dan tidak dikompresi.
RICE Data yang dienkode ke Rice-Golomb.

ListUpdateResponse

Pembaruan untuk daftar individual.

Representasi JSON
{
  "threatType": enum (ThreatType),
  "threatEntryType": enum (ThreatEntryType),
  "platformType": enum (PlatformType),
  "responseType": enum (ResponseType),
  "additions": [
    {
      object (ThreatEntrySet)
    }
  ],
  "removals": [
    {
      object (ThreatEntrySet)
    }
  ],
  "newClientState": string,
  "checksum": {
    object (Checksum)
  }
}
Kolom
threatType

enum (ThreatType)

Jenis ancaman yang datanya ditampilkan.

threatEntryType

enum (ThreatEntryType)

Format ancaman.

platformType

enum (PlatformType)

Jenis platform tempat data ditampilkan.

responseType

enum (ResponseType)

Jenis respons. Hal ini dapat menunjukkan bahwa suatu tindakan diperlukan oleh klien saat respons diterima.

additions[]

object (ThreatEntrySet)

Serangkaian entri yang akan ditambahkan ke daftar jenis ancaman lokal. Diulang untuk memungkinkan kombinasi data yang dikompresi dan mentah dikirim dalam satu respons.

removals[]

object (ThreatEntrySet)

Serangkaian entri yang akan dihapus dari daftar jenis ancaman lokal. Dalam praktiknya, kolom ini kosong atau berisi tepat satu ThreatEntrySet.

newClientState

string (bytes format)

Status klien baru, dalam format terenkripsi. Tidak transparan terhadap klien.

String berenkode base64.

checksum

object (Checksum)

Hash SHA256 yang diharapkan dari status klien; yaitu, daftar yang diurutkan dari semua {i>hash<i} yang ada dalam {i>database<i} setelah menerapkan pembaruan yang disediakan. Jika status klien tidak sesuai dengan status yang diharapkan, klien harus mengabaikan update ini dan mencoba lagi nanti.

ResponseType

Jenis respons yang dikirim ke klien.

Enum
RESPONSE_TYPE_UNSPECIFIED Tak diketahui.
PARTIAL_UPDATE Update sebagian akan diterapkan ke database lokal klien yang ada.
FULL_UPDATE Update menyeluruh menggantikan seluruh database lokal klien. Ini berarti bahwa klien benar-benar sudah ketinggalan zaman atau klien diyakini korup.

ThreatEntrySet

Serangkaian ancaman yang harus ditambahkan atau dihapus dari database lokal klien.

Representasi JSON
{
  "compressionType": enum (CompressionType),
  "rawHashes": {
    object (RawHashes)
  },
  "rawIndices": {
    object (RawIndices)
  },
  "riceHashes": {
    object (RiceDeltaEncoding)
  },
  "riceIndices": {
    object (RiceDeltaEncoding)
  }
}
Kolom
compressionType

enum (CompressionType)

Jenis kompresi untuk entri dalam set ini.

rawHashes

object (RawHashes)

Entri berformat SHA256 mentah.

rawIndices

object (RawIndices)

Indeks penghapusan mentah untuk daftar lokal.

riceHashes

object (RiceDeltaEncoding)

Awalan 4 byte yang dienkode dari entri berformat SHA256, menggunakan encoding Golomb-Rice. Hash dikonversi menjadi uint32, yang diurutkan dalam urutan menaik, lalu delta dienkode dan disimpan sebagai encodingData.

riceIndices

object (RiceDeltaEncoding)

Indeks daftar lokal yang dienkode, yang diurutkan secara leksikografis, menggunakan encoding Golomb-Rice. Digunakan untuk mengirim indeks penghapusan terkompresi. Indeks penghapusan (uint32) diurutkan dalam urutan menaik, lalu delta dienkode dan disimpan sebagai encodingData.

RawHashes

Entri ancaman yang tidak dikompresi dalam format hash dengan panjang awalan tertentu. {i>Hash<i} berukuran mulai dari 4 hingga 32 byte. Sebagian besarnya berukuran 4 byte, tetapi beberapa hash akan diperpanjang jika tumpang-tindih dengan hash URL populer.

Digunakan untuk mengirim ThreatEntrySet ke klien yang tidak mendukung kompresi, atau saat mengirim hash non-4 byte ke klien yang mendukung kompresi.

Representasi JSON
{
  "prefixSize": integer,
  "rawHashes": string
}
Kolom
prefixSize

integer

Jumlah byte untuk setiap awalan yang dienkode di bawah. Kolom ini dapat berkisar dari 4 (awalan terpendek) hingga 32 (hash SHA256 penuh).

rawHashes

string (bytes format)

Hash, dalam format biner, digabungkan menjadi satu string panjang. {i>Hash<i} diurutkan dalam urutan leksikografis. Untuk pengguna JSON API, hash dienkode dengan base64.

String berenkode base64.

RawIndices

Serangkaian indeks mentah yang akan dihapus dari daftar lokal.

Representasi JSON
{
  "indices": [
    integer
  ]
}
Kolom
indices[]

integer

Indeks yang akan dihapus dari daftar lokal yang diurutkan secara leksikografis.

RiceDeltaEncoding

Data yang dienkode ke Rice-Golomb. Digunakan untuk mengirim hash 4 byte terkompresi atau indeks penghapusan terkompresi.

Representasi JSON
{
  "firstValue": string,
  "riceParameter": integer,
  "numEntries": integer,
  "encodedData": string
}
Kolom
firstValue

string (int64 format)

Offset dari entri pertama dalam data yang dienkode, atau, jika hanya satu bilangan bulat yang dienkode, nilai bilangan bulat tunggal tersebut. Jika kolom kosong atau tidak ada, asumsikan nol.

riceParameter

integer

Parameter Golomb-Rice, yang merupakan angka antara 2 dan 28. Kolom ini tidak ada (yaitu, nol) jika numEntries adalah nol.

numEntries

integer

Jumlah entri yang dienkode dengan delta dalam data yang dienkode. Jika hanya satu bilangan bulat yang dienkode, nilainya akan menjadi nol dan nilai tunggal tersebut akan disimpan di firstValue.

encodedData

string (bytes format)

Delta yang dienkode yang dienkode menggunakan coder Golomb-Rice.

String berenkode base64.

Checksum

Kondisi yang diharapkan dari database lokal klien.

Representasi JSON
{
  "sha256": string
}
Kolom
sha256

string (bytes format)

Hash SHA256 status klien; yaitu, daftar yang diurutkan dari semua {i>hash<i} yang ada dalam {i>database<i}.

String berenkode base64.