عندما يختار العملاء استخدام الإصدار 5 من "التصفّح الآمن من Google" في هذا الوضع، يكون سلوك العميل مشابهًا لواجهة برمجة التطبيقات Update API في الإصدار 4، باستثناء استخدام مساحة واجهة برمجة التطبيقات المحسّنة في الإصدار 5. سيحتفظ العملاء في قاعدة البيانات المحلية بمجموعة من قوائم التهديدات المنسَّقة كبادئات تجزئة SHA256 لتعبيرات عناوين URL الخاصة باللاحقة المضيفة/بادئة المسار. عندما يريد العميل التحقّق من عنوان URL معيّن، يتم إجراء عملية تحقّق باستخدام قائمة التهديدات المحلية. في حال العثور على تطابق فقط، يتصل العميل بالخادم لمواصلة عملية التحقّق.
كما هو الحال أعلاه، سيحتفظ العميل أيضًا بذاكرة تخزين مؤقت محلية لا يلزم أن تكون في مساحة تخزين دائمة.
إجراء التحقّق من عنوان URL في "قائمة التهديدات المحلية"
يتم تنفيذ هذا الإجراء أيضًا عندما يستخدم العميل إجراء وضع الوقت الفعلي ويعرض القيمة UNSURE.
يأخذ هذا الإجراء عنوان URL واحدًا u ويعرض SAFE أو UNSAFE.
- لنفترض أنّ
expressionsهي قائمة بتعبيرات اللاحقة/البادئة التي تم إنشاؤها بواسطة عنوان URLu. - لنفترض أنّ
expressionHashesهي قائمة، حيث تكون العناصر عبارة عن تجزئات SHA256 لكل تعبير فيexpressions. - لنفترض أنّ
expressionHashPrefixesهي قائمة، حيث تكون العناصر هي أول 4 بايتات من كل قيمة تجزئة فيexpressionHashes. - لكل
expressionHashPrefixمنexpressionHashPrefixes:- ابحث عن
expressionHashPrefixفي ذاكرة التخزين المؤقت المحلية. - في حال العثور على الإدخال المخزّن مؤقتًا:
- تحديد ما إذا كان الوقت الحالي أكبر من وقت انتهاء الصلاحية
- إذا كانت القيمة أكبر:
- أزِل الإدخال الذي تم العثور عليه في ذاكرة التخزين المؤقت من ذاكرة التخزين المؤقت المحلية.
- مواصلة التكرار الحلقي
- إذا لم يكن أكبر:
- إزالة
expressionHashPrefixالمحدّدة منexpressionHashPrefixes - تحقَّق ممّا إذا كان التجزئة الكاملة المقابلة ضمن
expressionHashesمتوفّرة في الإدخال المخزّن مؤقتًا. - في حال العثور على نتيجة، أرجِع القيمة
UNSAFE. - إذا لم يتم العثور على السمة، استمر في التكرار.
- إزالة
- إذا لم يتم العثور على الإدخال المخزّن مؤقتًا، استمر في التكرار.
- ابحث عن
- لكل
expressionHashPrefixمنexpressionHashPrefixes:- ابحث عن
expressionHashPrefixفي قاعدة بيانات قائمة التهديدات المحلية. - إذا لم يتم العثور على
expressionHashPrefixفي قاعدة بيانات قائمة التهديدات المحلية، أزِلها منexpressionHashPrefixes.
- ابحث عن
- أرسِل
expressionHashPrefixesإلى خادم الإصدار 5 من "التصفّح الآمن من Google" باستخدام RPC SearchHashes أو طريقة REST hashes.search. في حال حدوث خطأ (بما في ذلك أخطاء الشبكة وأخطاء HTTP وما إلى ذلك)، يجب عرضSAFE. بخلاف ذلك، يجب أن تكون الاستجابة هيresponseالتي تم تلقّيها من خادم "التصفّح الآمن"، وهي عبارة عن قائمة بتجزئات كاملة بالإضافة إلى بعض المعلومات المساعدة التي تحدّد طبيعة التهديد (الهندسة الاجتماعية أو البرامج الضارة أو غير ذلك)، فضلاً عن وقت انتهاء صلاحية ذاكرة التخزين المؤقتexpiration. - لكل
fullHashمنresponse:- أدرِج
fullHashفي ذاكرة التخزين المؤقت المحلية، بالإضافة إلىexpiration.
- أدرِج
- لكل
fullHashمنresponse:- لنفترض أنّ
isFoundهي نتيجة العثور علىfullHashفيexpressionHashes. - إذا كانت قيمة
isFoundهي False، استمر في التكرار. - إذا كانت
isFoundصحيحة، يتم عرضUNSAFE.
- لنفترض أنّ
- Return
SAFE