Method: hashes.search

Menelusuri hash lengkap yang cocok dengan awalan yang ditentukan.

Ini adalah metode khusus seperti yang didefinisikan oleh https://google.aip.dev/136 (metode khusus ini merujuk pada metode ini yang memiliki nama khusus dalam nomenklatur pengembangan API umum Google; metode ini tidak merujuk pada penggunaan metode HTTP khusus).

Permintaan HTTP

GET https://safebrowsing.googleapis.com/v5/hashes:search

URL menggunakan sintaksis gRPC Transcoding.

Parameter kueri

Parameter
hashPrefixes[]

string (bytes format)

Wajib. Awalan hash yang akan dicari. Klien TIDAK BOLEH mengirim lebih dari 1.000 awalan hash. Namun, dengan mengikuti prosedur pemrosesan URL, klien TIDAK BOLEH mengirim lebih dari 30 awalan hash.

Saat ini, setiap awalan hash harus tepat 4 byte. Kebijakan ini MUNGKIN santai di masa mendatang.

String berenkode base64.

Isi permintaan

Isi permintaan harus kosong.

Isi respons

Respons yang ditampilkan setelah menelusuri hash ancaman.

Jika tidak ada yang ditemukan, server akan menampilkan status Oke (kode status HTTP 200) dengan kolom fullHashes kosong, bukan menampilkan status NOT_FOUND (kode status HTTP 404).

Yang baru di V5: Ada pemisahan antara FullHash dan FullHashDetail. Jika hash mewakili situs yang memiliki beberapa ancaman (mis. MALWARE dan SOCIAL_EngineERING), hash lengkapnya tidak perlu dikirim dua kali seperti di V4. Selain itu, durasi cache telah disederhanakan menjadi satu kolom cacheDuration.

Jika berhasil, isi respons memuat data dengan struktur berikut:

Representasi JSON
{
  "fullHashes": [
    {
      object (FullHash)
    }
  ],
  "cacheDuration": string
}
Kolom
fullHashes[]

object (FullHash)

Daftar yang tidak diurutkan. Daftar hash lengkap yang tidak diurutkan ditemukan.

cacheDuration

string (Duration format)

Durasi cache sisi klien. Klien HARUS menambahkan durasi ini ke waktu saat ini untuk menentukan waktu habis masa berlaku. Kemudian, waktu habis masa berlaku akan berlaku untuk setiap awalan hash yang dikueri oleh klien dalam permintaan, terlepas dari jumlah hash lengkap yang ditampilkan dalam respons. Meskipun server tidak menampilkan hash lengkap untuk awalan hash tertentu, fakta ini HARUS juga di-cache oleh klien.

Penting: klien TIDAK BOLEH berasumsi bahwa server akan mengembalikan durasi cache yang sama untuk semua respons. Server MUNGKIN memilih durasi cache yang berbeda untuk respons yang berbeda bergantung pada situasi.

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

FullHash

Hash lengkap diidentifikasi dengan satu atau beberapa kecocokan.

Representasi JSON
{
  "fullHash": string,
  "fullHashDetails": [
    {
      object (FullHashDetail)
    }
  ]
}
Kolom
fullHash

string (bytes format)

Hash lengkap yang cocok. Ini adalah hash SHA256. Panjangnya tepat adalah 32 byte.

String berenkode base64.

fullHashDetails[]

object (FullHashDetail)

Daftar yang tidak diurutkan. Kolom berulang yang mengidentifikasi detail yang relevan dengan hash lengkap ini.

FullHashDetail

Detail tentang hash lengkap yang cocok.

Catatan penting tentang kompatibilitas dengan versi baru: jenis ancaman dan atribut ancaman baru dapat ditambahkan oleh server kapan saja; penambahan tersebut dianggap sebagai perubahan versi minor. Merupakan kebijakan Google untuk tidak mengekspos nomor versi minor dalam API (lihat https://cloud.google.com/apis/design/versioning untuk kebijakan pembuatan versi), sehingga klien HARUS siap menerima pesan FullHashDetail yang berisi nilai enum ThreatType atau nilai enum ThreatAttribute yang dianggap tidak valid oleh klien. Oleh karena itu, klien bertanggung jawab untuk memeriksa validitas semua nilai enum ThreatType dan ThreatAttribute; jika ada nilai yang dianggap tidak valid, klien HARUS mengabaikan seluruh pesan FullHashDetail.

Representasi JSON
{
  "threatType": enum (ThreatType),
  "attributes": [
    enum (ThreatAttribute)
  ]
}
Kolom
threatType

enum (ThreatType)

Jenis ancaman. Kolom ini tidak akan pernah kosong.

attributes[]

enum (ThreatAttribute)

Daftar yang tidak diurutkan. Atribut tambahan tentang hash lengkap tersebut. Kolom ini mungkin kosong.

ThreatType

Jenis ancaman.

Enum
THREAT_TYPE_UNSPECIFIED Jenis ancaman tidak diketahui. Jika ini ditampilkan oleh server, klien harus mengabaikan FullHashDetail yang disertakan.
MALWARE

Jenis ancaman malware. Malware adalah software atau aplikasi seluler yang dirancang khusus untuk merusak komputer, perangkat seluler, software yang dijalankannya, atau penggunanya. Malware menunjukkan perilaku berbahaya yang dapat meliputi penginstalan software tanpa izin dari pengguna dan penginstalan software berbahaya seperti virus.

Informasi selengkapnya dapat ditemukan di sini.

SOCIAL_ENGINEERING

Jenis ancaman manipulasi psikologis. Halaman manipulasi psikologis palsu berpura-pura bertindak atas nama pihak ketiga dengan maksud membingungkan penonton sehingga melakukan tindakan yang membuat penonton hanya memercayai agen sejati dari pihak ketiga tersebut. {i>Phishing<i} adalah jenis manipulasi psikologis yang mengelabui penonton agar melakukan tindakan tertentu dalam memberikan informasi, seperti kredensial login.

Informasi selengkapnya dapat ditemukan di sini.

UNWANTED_SOFTWARE Jenis ancaman software yang tidak diinginkan. Software yang tidak diinginkan adalah software yang tidak mematuhi Prinsip Software Google, tetapi bukan malware.
POTENTIALLY_HARMFUL_APPLICATION Jenis ancaman aplikasi yang berpotensi berbahaya seperti yang digunakan oleh Google Play Protect untuk Play Store.

ThreatAttribute

Atribut ancaman. Atribut ini dapat memberikan arti tambahan pada ancaman tertentu, tetapi tidak akan memengaruhi jenis ancaman tersebut. Misalnya, atribut dapat menentukan tingkat keyakinan yang lebih rendah, sedangkan atribut lain mungkin menentukan tingkat keyakinan yang lebih tinggi. Atribut lainnya dapat ditambahkan di masa mendatang.

Enum
THREAT_ATTRIBUTE_UNSPECIFIED Atribut tidak diketahui. Jika ini ditampilkan oleh server, klien harus mengabaikan FullHashDetail yang disertakan.
CANARY Menunjukkan bahwa ancamanType tidak boleh digunakan untuk penerapan.
FRAME_ONLY Menunjukkan bahwa ancamanType hanya boleh digunakan untuk penerapan pada frame.