من التحسينات المهمة التي يوفّرها الإصدار 5 من "التصفّح الآمن" من Google مقارنةً بالإصدار 4 (وتحديدًا Update API في الإصدار 4) هي حداثة البيانات وتغطيتها. بما أنّ الحماية تعتمد بشكل كبير على قاعدة البيانات المحلية التي يحتفظ بها العميل، فإنّ التأخير في تحديث قاعدة البيانات المحلية وحجمها هما السبب الرئيسي في عدم توفّر الحماية. في الإصدار 4، يستغرق العميل العادي من 20 إلى 50 دقيقة للحصول على أحدث إصدار من قوائم التهديدات. لسوء الحظ، تنتشر هجمات التصيّد الاحتيالي بسرعة: اعتبارًا من عام 2021، كان% 60 من المواقع الإلكترونية التي تنفّذ الهجمات نشطًا لمدة تقل عن 10 دقائق. تشير تحليلاتنا إلى أنّ حوالي %25 إلى %30 من حالات عدم توفّر الحماية من التصيّد الاحتيالي ترجع إلى عدم حداثة البيانات. بالإضافة إلى ذلك، لا تكون بعض الأجهزة مجهّزة لإدارة جميع قوائم التهديدات في "التصفّح الآمن" من Google، والتي تستمر في التوسّع بمرور الوقت.
إذا كنت تستخدم حاليًا الإصدار 4 من Update API، يتوفّر مسار نقل سلس من الإصدار 4 إلى الإصدار 5 بدون الحاجة إلى إعادة ضبط قاعدة البيانات المحلية أو محوها. يوضّح هذا القسم كيفية إجراء ذلك.
تحويل تعديلات القائمة
على عكس الإصدار 4، حيث يتم تحديد القوائم من خلال مجموعة من نوع التهديد ونوع النظام الأساسي ونوع إدخال التهديد، يتم تحديد القوائم في الإصدار 5 ببساطة من خلال الاسم. ويوفّر ذلك المرونة عندما يمكن أن تتشارك عدة قوائم الإصدار 5 النوع نفسه من التهديدات. تمت إزالة أنواع المنصات وأنواع إدخالات التهديدات في الإصدار 5.
في الإصدار 4، يمكن استخدام طريقة threatListUpdates.fetch لتنزيل القوائم. في الإصدار 5، يمكن التبديل إلى طريقة hashLists.batchGet.
يجب إجراء التغييرات التالية على الطلب:
- أزِل العنصر v4 
ClientInfoبالكامل. بدلاً من تقديم تعريف العميل باستخدام حقل مخصّص، يمكنك ببساطة استخدام عنوان User-Agent المعروف. مع أنّه ليس هناك تنسيق محدّد لتقديم تعريف العميل في هذا العنوان، نقترح تضمين معرّف العميل الأصلي وإصدار العميل مفصولَين بمسافة أو شرطة مائلة. - لكل عنصر 
ListUpdateRequestمن الإصدار 4: * ابحث عن اسم القائمة المقابل من الإصدار 5 في القوائم المتاحة وقدِّم هذا الاسم في طلب الإصدار 5.- أزِل الحقول غير الضرورية، مثل 
threat_entry_typeأوplatform_type. - يتوافق الحقل 
stateفي الإصدار 4 مباشرةً مع الحقلversionsفي الإصدار 5. يمكن ببساطة إرسال سلسلة البايت نفسها التي سيتم إرسالها إلى الخادم باستخدام الحقلstateفي الإصدار 4 من خلال الحقلversionsفي الإصدار 5. - بالنسبة إلى قيود الإصدار 4، يستخدم الإصدار 5 نسخة مبسطة تُعرف باسم 
SizeConstraints. يجب حذف الحقول الإضافية، مثلregion. 
 - أزِل الحقول غير الضرورية، مثل 
 
يجب إجراء التغييرات التالية على الردّ:
- يتم ببساطة استبدال enum 
ResponseTypeفي الإصدار 4 بحقل منطقي اسمهpartial_update. - يمكن الآن أن تكون قيمة الحقل 
minimum_wait_durationصفرًا أو يمكن إغفاله. وفي حال كان كذلك، يُطلب من العميل إرسال طلب آخر على الفور. يحدث ذلك فقط عندما يحدّد العميل فيSizeConstraintsقيدًا أصغر على الحد الأقصى لحجم التحديث من الحد الأقصى لحجم قاعدة البيانات. - تتطلّب منطق فك ترميز تجزئات Rice-Golomb إجراء تعديلَين أساسيَّين:
            
- الترتيب حسب الأهمية والترتيب: في الإصدار 4، تم ترتيب الرموز الهاش المعروضة كقيم حسب الأهمية. في الإصدار 5، يتم التعامل معها كقيم big-endian. بما أنّ الترتيب المعجمي لسلاسل البايتات يعادل الترتيب الرقمي لقيم Big-Endian، لم يعُد على العملاء تنفيذ خطوة ترتيب خاصة. يمكن إزالة الترتيب المخصّص من الأقل إلى الأكثر أهمية، مثل الترتيب الوارد في تنفيذ Chromium الإصدار 4، إذا تم تنفيذه سابقًا.
 - أطوال التجزئة المتغيرة: يجب تعديل خوارزمية فك التشفير لتتوافق مع أطوال التجزئة المختلفة التي يمكن عرضها في الحقل 
HashList.compressed_additions، وليس فقط طول التجزئة المكوّن من أربعة بايتات والمستخدَم في الإصدار 4. يمكن تحديد طول قيم التجزئة التي يتم عرضها في الردّ استنادًا إلىHashList.metadata.hash_lengthالذي يتم عرضه منhashLists.list. بدلاً من ذلك، يشير اسم قائمة التجزئة المطلوبة أيضًا إلى أحجام التجزئة المتوقّعة التي يتم عرضها من القائمة. يمكنك الاطّلاع على صفحة قاعدة البيانات المحلية للحصول على مزيد من التفاصيل حول قوائم التجزئة. 
 
تحويل عمليات البحث باستخدام رموز التجزئة
في الإصدار 4، يمكن استخدام طريقة fullHashes.find للحصول على تجزئات كاملة. الطريقة المكافئة في الإصدار 5 هي طريقة hashes.search.
يجب إجراء التغييرات التالية على الطلب:
- يجب أن تكون بنية الرمز البرمجي على النحو الذي يتيح إرسال بادئات التجزئة التي يبلغ طولها 4 بايتات فقط.
 - أزِل عناصر 
ClientInfoالإصدار 4 بالكامل. بدلاً من تقديم تعريف العميل باستخدام حقل مخصّص، يمكنك ببساطة استخدام عنوان User-Agent المعروف. مع أنّه ليس هناك تنسيق محدّد لتقديم تعريف العميل في هذا العنوان، نقترح تضمين معرّف العميل الأصلي وإصدار العميل مفصولَين بمسافة أو شرطة مائلة. - أزِل الحقل 
client_states. لم يعُد ذلك ضروريًا. - لم يعُد من الضروري تضمين 
threat_typesوالحقول المشابهة. 
يجب إجراء التغييرات التالية على الردّ:
- تمت إزالة الحقل 
minimum_wait_duration. يمكن للعميل دائمًا إصدار طلب جديد حسب الحاجة. - تم تبسيط العنصر v4 
ThreatMatchإلى العنصرFullHash. - تم تبسيط التخزين المؤقت ليصبح مدة تخزين مؤقت واحدة. راجِع الإجراءات المذكورة أعلاه للتفاعل مع ذاكرة التخزين المؤقت.