Jika klien memilih untuk menggunakan Google Safe Browsing v5 dalam mode real-time tanpa penyimpanan, klien tidak perlu mempertahankan database lokal yang persisten. Namun, klien tetap diharapkan untuk mempertahankan cache lokal. Cache lokal tersebut tidak perlu berada di penyimpanan persisten dan dapat dihapus jika terjadi tekanan memori.
Setiap kali klien ingin memeriksa URL tertentu, klien selalu terhubung ke server untuk melakukan pemeriksaan. Mode ini mirip dengan yang dapat diterapkan oleh klien Lookup API v4.
Dibandingkan dengan Mode Real-Time, mode ini mungkin menggunakan lebih banyak bandwidth jaringan, tetapi mungkin lebih cocok jika klien merasa tidak nyaman untuk mempertahankan status lokal yang persisten.
Prosedur Pemeriksaan URL Real-Time Tanpa Database Lokal
Prosedur ini menggunakan satu URL u dan menampilkan SAFE atau UNSAFE.
- Biarkan
expressionsmenjadi daftar ekspresi akhiran/awalan yang dihasilkan oleh URLu. - Biarkan
expressionHashesmenjadi daftar, dengan elemen berupa hash SHA256 dari setiap ekspresi diexpressions. - Misalkan
expressionHashPrefixesadalah daftar, dengan elemen berupa 4 byte pertama setiap hash diexpressionHashes. - Untuk setiap
expressionHashPrefixdariexpressionHashPrefixes:- Cari
expressionHashPrefixdi cache lokal. - Jika entri yang di-cache ditemukan:
- Menentukan apakah waktu saat ini lebih besar daripada waktu habis masa berlakunya.
- Jika lebih besar:
- Menghapus entri yang ditemukan dan di-cache dari cache lokal.
- Lanjutkan dengan loop.
- Jika tidak lebih besar:
- Menghapus
expressionHashPrefixtertentu ini dariexpressionHashPrefixes. - Periksa apakah hash lengkap yang sesuai dalam
expressionHashesditemukan dalam entri yang di-cache. - Jika ditemukan, tampilkan
UNSAFE. - Jika tidak ditemukan, lanjutkan dengan loop.
- Menghapus
- Jika entri yang di-cache tidak ditemukan, lanjutkan dengan loop.
- Cari
- Kirim
expressionHashPrefixeske server Google Safe Browsing v5 menggunakan RPC SearchHashes atau metode REST hashes.search. Jika terjadi error (termasuk error jaringan, error HTTP, dll.), tampilkanSAFE. Jika tidak, biarkan respons menjadiresponseyang 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 cacheexpiration. - Untuk setiap
fullHashdariresponse:- Sisipkan
fullHashke dalam cache lokal, bersama denganexpiration.
- Sisipkan
- Untuk setiap
fullHashdariresponse:- Biarkan
isFoundmenjadi hasil dari menemukanfullHashdiexpressionHashes. - Jika
isFoundadalah False, lanjutkan dengan loop. - Jika
isFoundadalah Benar (True), tampilkanUNSAFE.
- Biarkan
- Kembalikan
SAFE.
Sama seperti Mode Real-Time, prosedur ini tidak menentukan secara persis cara mengirimkan awalan hash ke server. Misalnya, klien dapat mengirim semua expressionHashPrefixes dalam satu permintaan, dan klien juga dapat mengirim setiap awalan individual dalam expressionHashPrefixes ke server dalam permintaan terpisah (mungkin secara paralel). Klien juga dapat mengirimkan awalan hash yang tidak terkait atau dibuat secara acak bersama dengan awalan hash di expressionHashPrefixes, selama jumlah awalan hash yang dikirim dalam satu permintaan tidak melebihi 30.