স্থানীয় ডাটাবেস

এই নথিটি নিম্নলিখিত পদ্ধতিতে প্রযোজ্য: আপডেট এপিআই (v4) : ਧਮਕੀলিস্টআপডেটস.ফেচ

ডাটাবেস সেটআপ

আপডেট এপিআই ব্যবহারকারী ক্লায়েন্টদের একটি স্থানীয় ডাটাবেস সেট আপ করতে এবং তারা যে নিরাপদ ব্রাউজিং তালিকাগুলির সাথে কাজ করতে চান তার একটি প্রাথমিক ডাউনলোড সম্পাদন করতে হবে৷ এগিয়ে যাওয়ার জন্য, আপনি safebrowsing গো প্যাকেজ তৈরি এবং স্থাপন করতে পারেন (বা আপনার নিজস্ব বাস্তবায়ন মডেল করতে প্যাকেজটি ব্যবহার করুন)। আরও তথ্যের জন্য https://github.com/google/safebrowsing/ দেখুন।

ডাটাবেস আপডেট

সাম্প্রতিক হুমকির বিরুদ্ধে সুরক্ষা নিশ্চিত করার জন্য, ক্লায়েন্টদের দৃঢ়ভাবে তাদের স্থানীয় নিরাপদ ব্রাউজিং তালিকাগুলি নিয়মিত আপডেট করতে উত্সাহিত করা হয় হুমকিListUpdates.fetch পদ্ধতি ব্যবহার করে৷ হুমকিListUpdates.fetch অনুরোধ আপডেট করা তালিকা নির্দিষ্ট করে। ক্লায়েন্টদের মেমরি বা ব্যান্ডউইথের সীমাবদ্ধতা থাকলে, তারা আপডেট সীমাবদ্ধতা সেট করার অনুরোধটিও ব্যবহার করতে পারে ( আপডেট সীমাবদ্ধতা দেখুন)। হুমকিListUpdates.fetch প্রতিক্রিয়া প্রতিটি তালিকার জন্য একটি সম্পূর্ণ আপডেট বা আংশিক আপডেট প্রদান করে, যেমন নীচে ব্যাখ্যা করা হয়েছে।

সম্পূর্ণ আপডেট

ক্লায়েন্ট হুমকিListUpdates.fetch রিকোয়েস্টে state ফিল্ডটি খালি রেখে বা যখন সার্ভার নির্ধারণ করে যে একটি সম্পূর্ণ আপডেট প্রয়োজন তখন সম্পূর্ণ আপডেট ফেরত দেওয়া হয়। সম্পূর্ণ আপডেটের জন্য, শুধুমাত্র সংযোজনগুলি ফেরত দেওয়া হয়। ক্লায়েন্ট আপডেটগুলি প্রয়োগ করার আগে এবং বৈধতা পরীক্ষা করার আগে স্থানীয় ডাটাবেস সাফ করবে বলে আশা করা হচ্ছে৷

খালি অবস্থা

ক্লায়েন্ট যখন একটি তালিকার জন্য প্রাথমিক অনুরোধ পাঠায় তখন সম্পূর্ণ আপডেট ফেরত দেওয়া হয়। এই ক্ষেত্রে, অনুরোধের state ক্ষেত্রটি খালি রাখা হয় (কারণ প্রদান করার জন্য কোন মান নেই) এবং প্রতিক্রিয়াতে newClientState ক্ষেত্রটি স্থানীয় তালিকার জন্য প্রাথমিক অবস্থা প্রদান করে। ক্লায়েন্ট ইচ্ছাকৃতভাবে পরবর্তী অনুরোধে state ফিল্ডটি খালি রেখে দিলে সম্পূর্ণ আপডেটগুলিও ফেরত দেওয়া হয়। এটি একটি সম্পূর্ণ আপডেট বাধ্য করবে এবং প্রতিক্রিয়ার newClientState ক্ষেত্রে একটি নতুন অবস্থা ফিরিয়ে দেবে।

সার্ভার সিদ্ধান্ত

মাঝে মাঝে, ক্লায়েন্ট দ্বারা শুধুমাত্র একটি আংশিক আপডেটের অনুরোধ করা হলে নিরাপদ ব্রাউজিং সার্ভার একটি সম্পূর্ণ আপডেট প্রদান করে। এটি ঘটতে পারে যখন ক্লায়েন্ট প্রাথমিকভাবে তালিকার একটি ছোট সংস্করণ ডাউনলোড করে এবং তারপর তালিকার একটি বড় সংস্করণে আপডেট করে; সার্ভারটি সম্পূর্ণ তালিকা সহ একটি সম্পূর্ণ আপডেট ফিরিয়ে দেবে। এটিও ঘটতে পারে যদি ক্লায়েন্ট দীর্ঘ সময়ের মধ্যে ডেটা ডাউনলোড না করে এবং একটি আংশিক আপডেটের অনুরোধ করে; আবার, সার্ভারটি সম্পূর্ণ তালিকা সহ একটি সম্পূর্ণ আপডেট ফিরিয়ে দেবে।

আংশিক আপডেট

আংশিক আপডেটগুলি ফেরত দেওয়া হয় যখন ক্লায়েন্ট state ফিল্ডের জন্য হুমকিListUpdates.fetch অনুরোধে একটি মান সরবরাহ করে (ব্যতিক্রম, উপরে উল্লিখিত হিসাবে, যখন সার্ভার একটি সম্পূর্ণ আপডেটের প্রয়োজন নির্ধারণ করে)। আংশিক আপডেটের জন্য, সংযোজন এবং অপসারণ উভয়ই ফেরত দেওয়া হয়। ক্লায়েন্ট স্থানীয় ডাটাবেসের তালিকা আপডেট করে (সংযোজনের আগে অপসারণ প্রয়োগ করে) এবং তারপর বৈধতা পরীক্ষা করে।

সংযোজন

সংযোজন হল SHA256 হ্যাশ প্রিফিক্স যা স্থানীয় ডাটাবেসে যোগ করা উচিত। বেশিরভাগ হ্যাশ উপসর্গ 4 বাইট দীর্ঘ কিন্তু কিছু হ্যাশ উপসর্গের দৈর্ঘ্য 4 থেকে 32 বাইটের মধ্যে হতে পারে। অতএব, সংযোজনের একাধিক সেট ফেরত দেওয়া যেতে পারে; উদাহরণস্বরূপ, একটিতে 4-বাইট উপসর্গ রয়েছে এবং একটি 5-বাইট উপসর্গ রয়েছে।

যদি ক্লায়েন্ট কম্প্রেশন সমর্থন করে, তাহলে প্রতিক্রিয়াটি রাইস কম্প্রেশন ব্যবহার করে সংকুচিত হতে পারে। যাইহোক, শুধুমাত্র 4-বাইট হ্যাশ উপসর্গ সংকুচিত হয়। লম্বা হ্যাশ উপসর্গগুলি সর্বদা অসংকুচিত, কাঁচা বিন্যাসে পাঠানো হয় ( সংকোচন দেখুন)।

অপসারণ

স্থানীয় ডাটাবেস থেকে সরানো উচিত এমন এন্ট্রিগুলির দিকে নির্দেশ করে অভিধানিকভাবে সাজানো ক্লায়েন্ট ডাটাবেসে অপসারণগুলি হল শূন্য-ভিত্তিক সূচক। শুধুমাত্র এক সেট অপসারণ ফেরত দেওয়া হবে।

যদি ক্লায়েন্ট কম্প্রেশন সমর্থন করে, "ভাতের হ্যাশ" এবং "চালের সূচক" ফেরত দেওয়া হয়। কম্প্রেশন সমর্থিত না হলে, "কাঁচা হ্যাশ" এবং "কাঁচা সূচক" ফেরত দেওয়া হয় ( সংকোচন দেখুন)।

বৈধতা চেক

যখন হুমকিListUpdates.fetch প্রতিক্রিয়া ফেরত দেওয়া হয় - একটি সম্পূর্ণ আপডেট বা একটি আংশিক আপডেট সহ - ক্লায়েন্ট একটি বৈধতা পরীক্ষা সঞ্চালন করার আশা করা হয়৷

ক্লায়েন্ট প্রথমে স্থানীয় ডাটাবেসের তালিকা আপডেট করে (সংযোজনের আগে অপসারণ প্রয়োগ করে)। ক্লায়েন্ট তারপর স্থানীয় তালিকার SHA256 হ্যাশ গণনা করে এবং প্রতিক্রিয়াতে ফিরে আসা চেকসামের সাথে তুলনা করে। দুটি মান সমান হলে, নিরাপদ ব্রাউজিং তালিকাটিকে "সঠিক" হিসেবে বিবেচনা করা হয়।

দুটি মান সমান না হলে, নিরাপদ ব্রাউজিং তালিকাটিকে "দুর্নীতিগ্রস্ত" হিসেবে বিবেচনা করা হয়। ক্লায়েন্টকে অবশ্যই ডাটাবেস থেকে তালিকাটি মুছে ফেলতে হবে এবং খালি স্ট্রিংয়ে state ফিল্ডের সাথে একটি দ্বিতীয় আপডেট পুনরায় জারি করতে হবে; এটি একটি সম্পূর্ণ আপডেট বাধ্য করবে এবং একটি একেবারে নতুন তালিকা এবং রাজ্য ফিরিয়ে দেবে।