Local List Mode

Jika klien memilih untuk menggunakan Google Safe Browsing v5 dalam mode ini, perilaku klien akan mirip dengan Update API v4, kecuali menggunakan permukaan API v5 yang lebih baik. Klien akan menyimpan sekumpulan daftar ancaman dalam database lokalnya yang diformat sebagai awalan hash SHA256 dari ekspresi URL host-suffix/path-prefix. Setiap kali klien ingin memeriksa URL tertentu, pemeriksaan dilakukan menggunakan daftar ancaman lokal. Jika dan hanya jika ada kecocokan, klien akan terhubung ke server untuk melanjutkan pemeriksaan.

Seperti di atas, klien juga akan mempertahankan cache lokal yang tidak perlu berada di penyimpanan persisten.

Prosedur Pemeriksaan URL Daftar Ancaman Lokal

Prosedur ini juga dilakukan saat klien menggunakan prosedur Mode Real-Time dan menampilkan nilai UNSURE.

Prosedur ini menggunakan satu URL u dan menampilkan SAFE atau UNSAFE.

  1. Misalkan expressions adalah daftar ekspresi akhiran/awalan yang dihasilkan oleh URL u.
  2. Misalkan expressionHashes adalah daftar, dengan elemen berupa hash SHA256 dari setiap ekspresi di expressions.
  3. Misalkan expressionHashPrefixes adalah daftar, dengan elemen berupa 4 byte pertama setiap hash di expressionHashes.
  4. Untuk setiap expressionHashPrefix dari expressionHashPrefixes:
    1. Cari expressionHashPrefix di cache lokal.
    2. Jika entri yang di-cache ditemukan:
      1. Menentukan apakah waktu saat ini lebih besar daripada waktu habis masa berlakunya.
      2. Jika lebih besar:
        1. Menghapus entri yang ditemukan dan di-cache dari cache lokal.
        2. Lanjutkan dengan loop.
      3. Jika tidak lebih besar:
        1. Menghapus expressionHashPrefix tertentu ini dari expressionHashPrefixes.
        2. Periksa apakah hash lengkap yang sesuai dalam expressionHashes ditemukan dalam entri yang di-cache.
        3. Jika ditemukan, tampilkan UNSAFE.
        4. Jika tidak ditemukan, lanjutkan dengan loop.
    3. Jika entri yang di-cache tidak ditemukan, lanjutkan dengan loop.
  5. Untuk setiap expressionHashPrefix dari expressionHashPrefixes:
    1. Cari expressionHashPrefix di database daftar ancaman lokal.
    2. Jika expressionHashPrefix tidak dapat ditemukan dalam database daftar ancaman lokal, hapus dari expressionHashPrefixes.
  6. Kirim expressionHashPrefixes ke server Google Safe Browsing v5 menggunakan RPC SearchHashes atau metode REST hashes.search. Jika terjadi error (termasuk error jaringan, error HTTP, dll.), tampilkan SAFE. Jika tidak, biarkan respons menjadi response yang diterima dari server SB, yang merupakan daftar hash lengkap beserta beberapa informasi tambahan yang mengidentifikasi sifat ancaman (rekayasa sosial, malware, dll.), serta waktu habis masa berlaku cache expiration.
  7. Untuk setiap fullHash dari response:
    1. Sisipkan fullHash ke dalam cache lokal, bersama dengan expiration.
  8. Untuk setiap fullHash dari response:
    1. Biarkan isFound menjadi hasil dari menemukan fullHash di expressionHashes.
    2. Jika isFound adalah False, lanjutkan dengan loop.
    3. Jika isFound adalah Benar (True), tampilkan UNSAFE.
  9. Kembalikan SAFE.