وقتی کلاینتها در این حالت از Google Safe Browsing v5 استفاده میکنند، رفتار کلاینت مشابه بهروزرسانی API نسخه ۴ است، با این تفاوت که از API surface بهبود یافته نسخه ۵ استفاده میکند. کلاینتها در پایگاه داده محلی خود مجموعهای از لیستهای تهدید را که به صورت پیشوندهای هش SHA256 از عبارات URL با پسوند میزبان/پیشوند مسیر قالببندی شدهاند، نگهداری میکنند. هر زمان که کلاینت بخواهد یک URL خاص را بررسی کند، بررسی با استفاده از لیست تهدید محلی انجام میشود. اگر و فقط اگر تطابقی وجود داشته باشد، کلاینت برای ادامه بررسی به سرور متصل میشود.
همانند موارد فوق، کلاینت یک حافظه پنهان محلی نیز نگهداری خواهد کرد که نیازی به ذخیره دائمی ندارد.
رویه بررسی URL فهرست تهدیدهای محلی
این رویه همچنین زمانی که کلاینت از رویه حالت بلادرنگ (Real-Time Mode) استفاده میکند، انجام میشود و مقدار UNSURE برمیگرداند.
این روال یک URL واحد u را میگیرد و SAFE یا UNSAFE را برمیگرداند.
- فرض کنید
expressionsفهرستی از عبارات پسوند/پیشوند تولید شده توسط URLuباشند. - فرض کنید
expressionHashesیک لیست باشد که عناصر آن، هشهای SHA256 هر عبارت درexpressionsهستند. - فرض کنید
expressionHashPrefixesیک لیست باشد که عناصر آن، ۴ بایت اول هر هش درexpressionHashesهستند. - برای هر
expressionHashPrefixازexpressionHashPrefixes:-
expressionHashPrefixدر حافظه پنهان محلی جستجو کنید. - اگر ورودی ذخیره شده پیدا شد:
- تعیین کنید که آیا زمان فعلی از زمان انقضای آن بزرگتر است یا خیر.
- اگر بیشتر باشد:
- ورودی کش شدهی پیدا شده را از کش محلی حذف کن.
- با حلقه ادامه دهید.
- اگر بزرگتر نباشد:
- این
expressionHashPrefixخاص را ازexpressionHashPrefixesحذف کنید. - بررسی کنید که آیا هش کامل مربوطه در
expressionHashesدر ورودی ذخیره شده یافت میشود یا خیر. - در صورت یافتن،
UNSAFEرا برگردانید. - اگر پیدا نشد، به حلقه ادامه دهید.
- این
- اگر ورودی ذخیره شده در حافظه پنهان پیدا نشد، حلقه را ادامه دهید.
-
- برای هر
expressionHashPrefixازexpressionHashPrefixes:-
expressionHashPrefixدر پایگاه داده لیست تهدید محلی جستجو کنید. - اگر عبارت
expressionHashPrefixدر پایگاه داده لیست تهدید محلی یافت نشد، آن را ازexpressionHashPrefixesحذف کنید.
-
- ارسال
expressionHashPrefixesبه سرور مرور ایمن گوگل نسخه ۵ با استفاده از RPC SearchHashes یا متد REST hashes.search . اگر خطایی رخ داد (از جمله خطاهای شبکه، خطاهای HTTP و غیره)،SAFEرا برگردانید. در غیر این صورت، اجازه دهید responseresponseدریافتی از سرور SB باشد که لیستی از هشهای کامل به همراه برخی اطلاعات کمکی است که ماهیت تهدید (مهندسی اجتماعی، بدافزار و غیره) و همچنین زمان انقضای حافظه پنهانexpirationمشخص میکند. - برای هر
fullHashازresponse:- دستور
fullHashبه همراهexpirationدر حافظه پنهان محلی قرار دهید.
- دستور
- برای هر
fullHashازresponse:- فرض کنید
isFoundنتیجه یافتنfullHashدرexpressionHashesباشد. - اگر
isFoundبرابر با False باشد، حلقه را ادامه بده. - اگر
isFoundبرابر با True باشد، مقدارUNSAFEرا برمیگرداند.
- فرض کنید
- بازگشت
SAFE.