عندما يختار العملاء استخدام الإصدار 5 من ميزة "التصفّح الآمن" من Google في وضع الوقت الفعلي بدون تخزين، لن يحتاج العميل إلى الاحتفاظ بأي قاعدة بيانات محلية ثابتة. ومع ذلك، لا يزال من المتوقّع أن يحتفظ العميل بذاكرة تخزين مؤقت محلية. ولا يلزم أن تكون ذاكرة التخزين المؤقت المحلية هذه في مساحة تخزين ثابتة، ويمكن محوها في حال نقص الذاكرة.
عندما يريد العميل التحقّق من عنوان URL معيّن، يتصل دائمًا بالخادم لإجراء عملية التحقّق. يشبه هذا الوضع ما قد ينفّذه عملاء الإصدار 4 من Lookup API.
مقارنةً بـ "وضع الوقت الفعلي"، قد يستخدم هذا الوضع معدل نقل بيانات أكبر على الشبكة، ولكنّه قد يكون أكثر ملاءمةً إذا كان من غير الملائم للعميل الحفاظ على حالة محلية ثابتة.
إجراء التحقّق من عنوان URL في الوقت الفعلي بدون قاعدة بيانات محلية
يأخذ هذا الإجراء عنوان URL واحدًا u ويعرض SAFE أو UNSAFE.
- لنفترض أنّ
expressionsهي قائمة بتعبيرات اللاحقة/البادئة التي تم إنشاؤها بواسطة عنوان URLu. - لنفترض أنّ
expressionHashesهي قائمة، حيث تكون العناصر عبارة عن تجزئات SHA256 لكل تعبير فيexpressions. - لنفترض أنّ
expressionHashPrefixesهي قائمة، حيث تكون العناصر هي أول 4 بايتات من كل قيمة تجزئة فيexpressionHashes. - لكل
expressionHashPrefixمنexpressionHashPrefixes:- ابحث عن
expressionHashPrefixفي ذاكرة التخزين المؤقت المحلية. - في حال العثور على الإدخال المخزّن مؤقتًا:
- تحديد ما إذا كان الوقت الحالي أكبر من وقت انتهاء الصلاحية
- إذا كانت القيمة أكبر:
- أزِل الإدخال الذي تم العثور عليه في ذاكرة التخزين المؤقت من ذاكرة التخزين المؤقت المحلية.
- مواصلة التكرار الحلقي
- إذا لم يكن أكبر:
- إزالة
expressionHashPrefixالمحدّدة منexpressionHashPrefixes - تحقَّق ممّا إذا كان التجزئة الكاملة المقابلة ضمن
expressionHashesمتوفّرة في الإدخال المخزّن مؤقتًا. - في حال العثور على تطابق، أرجِع القيمة
UNSAFE. - إذا لم يتم العثور على السمة، استمر في التكرار.
- إزالة
- إذا لم يتم العثور على الإدخال المخزّن مؤقتًا، استمر في التكرار.
- ابحث عن
- أرسِل
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
كما هو الحال في الوضع في الوقت الفعلي، لا يحدّد هذا الإجراء كيفية إرسال بادئات التجزئة إلى الخادم بالضبط. على سبيل المثال، من المقبول أن يرسل العميل كل expressionHashPrefixes في طلب واحد، ومن المقبول أيضًا أن يرسل العميل كل بادئة فردية في expressionHashPrefixes إلى الخادم في طلبات منفصلة (ربما بالتوازي). من المقبول أيضًا أن يرسل العميل بادئات تجزئة غير ذات صلة أو تم إنشاؤها عشوائيًا مع بادئات التجزئة في expressionHashPrefixes، طالما أنّ عدد بادئات التجزئة المُرسَلة في طلب واحد لا يتجاوز 30.