নিরাপদ ব্রাউজিং আপডেট API (v4)

ওভারভিউ

আপডেট API আপনার ক্লায়েন্ট অ্যাপ্লিকেশনগুলিকে স্থানীয় ডাটাবেসে স্টোরেজের জন্য নিরাপদ ব্রাউজিং তালিকার হ্যাশড সংস্করণ ডাউনলোড করতে দেয়৷ URL তারপর স্থানীয়ভাবে চেক করা যেতে পারে. শুধুমাত্র স্থানীয় ডাটাবেসে একটি মিল পাওয়া গেলেই ক্লায়েন্টকে নিরাপদ ব্রাউজিং সার্ভারে URLটি নিরাপদ ব্রাউজিং তালিকায় অন্তর্ভুক্ত করা হয়েছে কিনা তা যাচাই করার জন্য একটি অনুরোধ পাঠাতে হবে।

আপডেট API ব্যবহার করার আগে, আপনাকে একটি স্থানীয় ডাটাবেস সেট আপ করতে হবে। নিরাপদ ব্রাউজিং একটি গো প্যাকেজ প্রদান করে যা আপনি চলতে ব্যবহার করতে পারেন। আরও বিশদ বিবরণের জন্য, স্থানীয় ডেটাবেসগুলির অধীনে ডেটাবেস সেটআপ বিভাগটি দেখুন।

স্থানীয় ডাটাবেস আপডেট করা হচ্ছে

বর্তমান থাকার জন্য, ক্লায়েন্টদের পর্যায়ক্রমে তাদের স্থানীয় ডাটাবেসে নিরাপদ ব্রাউজিং তালিকা আপডেট করতে হবে। ব্যান্ডউইথ সংরক্ষণ করতে, ক্লায়েন্টরা কাঁচা URL-এর পরিবর্তে URL-এর হ্যাশ উপসর্গগুলি ডাউনলোড করে। উদাহরণস্বরূপ, যদি "www.badurl.com/" একটি নিরাপদ ব্রাউজিং তালিকায় থাকে, তাহলে ক্লায়েন্টরা URL-এর পরিবর্তে সেই URL-এর SHA256 হ্যাশ প্রিফিক্স ডাউনলোড করে৷ বেশিরভাগ ক্ষেত্রে হ্যাশ উপসর্গগুলি 4 বাইট দীর্ঘ হয়, যার অর্থ একটি একক তালিকা এন্ট্রি ডাউনলোড করার গড় ব্যান্ডউইথ খরচ কম্প্রেশনের আগে 4 বাইট।

স্থানীয় ডাটাবেসে নিরাপদ ব্রাউজিং তালিকা আপডেট করতে, হুমকিListUpdates.fetch পদ্ধতিতে একটি HTTP POST অনুরোধ পাঠান:

  • HTTP POST অনুরোধে মেমরি এবং ব্যান্ডউইথ সীমাবদ্ধতার জন্য অ্যাকাউন্টে বিভিন্ন ক্লায়েন্ট সীমাবদ্ধতার সাথে আপডেট করা তালিকার নাম অন্তর্ভুক্ত রয়েছে।
  • HTTP POST প্রতিক্রিয়া একটি সম্পূর্ণ আপডেট বা একটি আংশিক আপডেট প্রদান করে। প্রতিক্রিয়াটি ন্যূনতম অপেক্ষার সময়কালও ফিরিয়ে দিতে পারে

উদাহরণ: হুমকিListUpdates.fetch

HTTP POST অনুরোধ

নিম্নলিখিত উদাহরণে, একটি একক নিরাপদ ব্রাউজিং তালিকার আপডেটের জন্য অনুরোধ করা হয়েছে৷

শিরোনাম অনুরোধ করুন

অনুরোধ শিরোনাম অনুরোধ URL এবং বিষয়বস্তু প্রকার অন্তর্ভুক্ত. URL-এ API_KEY এর জন্য আপনার API কী প্রতিস্থাপন করতে ভুলবেন না।

POST https://safebrowsing.googleapis.com/v4/threatListUpdates:fetch?key=API_KEY HTTP/1.1
Content-Type: application/json

শরীরের অনুরোধ

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

{
  "client": {
    "clientId":       "yourcompanyname",
    "clientVersion":  "1.5.2"
  },
  "listUpdateRequests": [{
    "threatType":      "MALWARE",
    "platformType":    "WINDOWS",
    "threatEntryType": "URL",
    "state":           "Gg4IBBADIgYQgBAiAQEoAQ==",
    "constraints": {
      "maxUpdateEntries":      2048,
      "maxDatabaseEntries":    4096,
      "region":                "US",
      "supportedCompressions": ["RAW"]
    }
  }]
}
ক্লায়েন্ট তথ্য

clientID এবং clientVersion ক্ষেত্রগুলিকে স্বতন্ত্রভাবে একটি ক্লায়েন্ট বাস্তবায়ন সনাক্ত করা উচিত, একটি পৃথক ব্যবহারকারী নয়। (সার্ভার-সাইড লগিংয়ে ক্লায়েন্টের তথ্য ব্যবহার করা হয়। আপনি ক্লায়েন্ট আইডির জন্য যেকোনো নাম বেছে নিতে পারেন কিন্তু আমরা আপনাকে এমন একটি নাম বেছে নেওয়ার পরামর্শ দিই যা ক্লায়েন্টের আসল পরিচয়কে প্রতিনিধিত্ব করে, যেমন আপনার কোম্পানির নাম, সব মিলিয়ে একটি শব্দ হিসেবে উপস্থাপিত। -ছোট হাতের অক্ষর।)

নিরাপদ ব্রাউজিং তালিকা

threatType , platformType , এবং threatEntryType ক্ষেত্রগুলিকে নিরাপদ ব্রাউজিং তালিকাগুলি সনাক্ত করতে (নাম) একত্রিত করা হয়েছে৷ উদাহরণে, একটি তালিকা চিহ্নিত করা হয়েছে: ম্যালওয়্যার/উইন্ডোজ/ইউআরএল। একটি অনুরোধ পাঠানোর আগে, নিশ্চিত করুন যে আপনার নির্দিষ্ট ধরনের সমন্বয় বৈধ ( নিরাপদ ব্রাউজিং তালিকা দেখুন)।

ক্লায়েন্টের অবস্থা

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

আকারের সীমাবদ্ধতা

maxUpdateEntries ক্ষেত্রটি ক্লায়েন্ট পরিচালনা করতে পারে এমন আপডেটের মোট সংখ্যা নির্দিষ্ট করে (উদাহরণস্বরূপ, 2048)। maxDatabaseEntries ফিল্ড স্থানীয় ডাটাবেস পরিচালনা করতে পারে এমন মোট এন্ট্রির সংখ্যা নির্দিষ্ট করে (উদাহরণস্বরূপ, 4096)। ক্লায়েন্টদের মেমরি এবং ব্যান্ডউইথ সীমাবদ্ধতা রক্ষা করতে এবং তালিকা বৃদ্ধির বিরুদ্ধে সুরক্ষার জন্য আকারের সীমাবদ্ধতা সেট করা উচিত। আরও তথ্যের জন্য, ( আপডেট সীমাবদ্ধতা দেখুন)।

সমর্থিত কম্প্রেশন

supportedCompressions ক্ষেত্রটি ক্লায়েন্ট সমর্থন করে এমন কম্প্রেশন প্রকারের তালিকা করে। উদাহরণে, ক্লায়েন্ট শুধুমাত্র কাঁচা, সংকুচিত ডেটা সমর্থন করে। তবে নিরাপদ ব্রাউজিং অতিরিক্ত কম্প্রেশন প্রকারগুলিকে সমর্থন করে ( সংকোচন দেখুন)।

HTTP POST প্রতিক্রিয়া

এই উদাহরণে, প্রতিক্রিয়া অনুরোধ করা সংকোচন প্রকার ব্যবহার করে নিরাপদ ব্রাউজিং তালিকার জন্য একটি আংশিক আপডেট প্রদান করে।

প্রতিক্রিয়া শিরোনাম

প্রতিক্রিয়া শিরোনামে HTTP স্থিতি কোড এবং বিষয়বস্তুর প্রকার অন্তর্ভুক্ত রয়েছে। ক্লায়েন্ট যারা HTTP/200 ছাড়া অন্য একটি স্ট্যাটাস কোড পায় তাদের অবশ্যই ব্যাক-অফ মোডে প্রবেশ করতে হবে ( অনুরোধের ফ্রিকোয়েন্সি দেখুন)।

HTTP/1.1 200 OK
Content-Type: application/json

প্রতিক্রিয়া শরীর

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

{
  "listUpdateResponses": [{
    "threatType":      "MALWARE",
    "threatEntryType": "URL",
    "platformType":    "WINDOWS",
    "responseType" :   "PARTIAL_UPDATE",
    "additions": [{
      "compressionType": "RAW",
      "rawHashes": {
        "prefixSize": 4,
        "rawHashes":  "rnGLoQ=="
      }
    }],
    "removals": [{
      "compressionType": "RAW",
      "rawIndices": {
        "indices": [0, 2, 4]
      }
    }],
    "newClientState": "ChAIBRADGAEiAzAwMSiAEDABEAFGpqhd",
    "checksum": {
      "sha256": "YSgoRtsRlgHDqDA3LAhM1gegEpEzs1TjzU33vqsR8iM="
    }
  }],
  "minimumWaitDuration": "593.440s"
}
ডাটাবেস আপডেট

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

নতুন ক্লায়েন্ট রাষ্ট্র

newClientState ক্ষেত্রটি নতুন আপডেট করা নিরাপদ ব্রাউজিং তালিকার জন্য নতুন ক্লায়েন্টের অবস্থা ধারণ করে। পরবর্তী আপডেটের অনুরোধের জন্য ক্লায়েন্টদের অবশ্যই নতুন ক্লায়েন্ট স্টেট সংরক্ষণ করতে হবে ( thatrateListUpdates.fetch অনুরোধের state ক্ষেত্র বা fullHashes.find অনুরোধে clientStates ক্ষেত্র)।

চেকসাম

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

ন্যূনতম অপেক্ষার সময়কাল

minimumWaitDuration ক্ষেত্র নির্দেশ করে যে ক্লায়েন্টকে অন্য একটি আপডেটের অনুরোধ পাঠানোর আগে 593.44 সেকেন্ড (9.89 মিনিট) অপেক্ষা করতে হবে। মনে রাখবেন যে একটি অপেক্ষার সময় প্রতিক্রিয়াতে অন্তর্ভুক্ত হতে পারে বা নাও হতে পারে ( অনুরোধের ফ্রিকোয়েন্সি দেখুন)।

ইউআরএল চেক করা হচ্ছে

একটি URL একটি নিরাপদ ব্রাউজিং তালিকায় আছে কিনা তা পরীক্ষা করতে, ক্লায়েন্টকে প্রথমে URL এর হ্যাশ এবং হ্যাশ উপসর্গ গণনা করতে হবে ( URL এবং হ্যাশিং দেখুন)। তারপরে ক্লায়েন্ট স্থানীয় ডাটাবেসকে জিজ্ঞাসা করে যে একটি মিল আছে কিনা তা নির্ধারণ করতে। যদি স্থানীয় ডাটাবেসে হ্যাশ উপসর্গ না থাকে , তাহলে ইউআরএল নিরাপদ বলে বিবেচিত হয় (নিরাপদ ব্রাউজিং তালিকায় নয়)।

হ্যাশ উপসর্গ স্থানীয় ডাটাবেসে উপস্থিত থাকলে (একটি হ্যাশ উপসর্গ সংঘর্ষ), ক্লায়েন্টকে অবশ্যই হ্যাশ উপসর্গটি যাচাইয়ের জন্য নিরাপদ ব্রাউজিং সার্ভারে পাঠাতে হবে। সার্ভারগুলি প্রদত্ত হ্যাশ উপসর্গ ধারণ করে এমন সমস্ত পূর্ণ-দৈর্ঘ্যের SHA 256 হ্যাশ ফেরত দেবে। যদি সেই পূর্ণ-দৈর্ঘ্যের হ্যাশগুলির মধ্যে একটি প্রশ্নযুক্ত URL-এর পূর্ণ-দৈর্ঘ্যের হ্যাশের সাথে মিলে যায়, তাহলে URLটিকে অনিরাপদ বলে মনে করা হয়। যদি পূর্ণ-দৈর্ঘ্যের কোনো হ্যাশ প্রশ্নে থাকা URL-এর পূর্ণ-দৈর্ঘ্যের হ্যাশের সাথে মেলে না, তাহলে সেই URLটি নিরাপদ বলে বিবেচিত হয়।

আপনি যে ইউআরএলগুলি পরীক্ষা করছেন সেগুলি সম্পর্কে Google কোন সময়েই জানতে পারে না। Google URL-এর হ্যাশ উপসর্গগুলি শিখে, কিন্তু হ্যাশ উপসর্গগুলি প্রকৃত URL সম্পর্কে বেশি তথ্য প্রদান করে না৷

একটি URL একটি নিরাপদ ব্রাউজিং তালিকায় আছে কিনা তা পরীক্ষা করতে, fullHashes.find পদ্ধতিতে একটি HTTP POST অনুরোধ পাঠান:

  • HTTP POST অনুরোধে 500টি পর্যন্ত হুমকি এন্ট্রি অন্তর্ভুক্ত থাকতে পারে।
  • HTTP POST অনুরোধে চেক করা URLগুলির হ্যাশ প্রিফিক্স অন্তর্ভুক্ত রয়েছে৷ ব্যান্ডউইথ ব্যবহার কম করার জন্য ক্লায়েন্টদের একটি একক অনুরোধে একাধিক হুমকি এন্ট্রি ব্যাচ করতে উত্সাহিত করা হয়।
  • HTTP POST প্রতিক্রিয়া ইতিবাচক এবং নেতিবাচক ক্যাশে সময়কালের সাথে মিলে যাওয়া পূর্ণ-দৈর্ঘ্যের হ্যাশগুলি প্রদান করে। প্রতিক্রিয়াটি ন্যূনতম অপেক্ষার সময়কালও ফিরিয়ে দিতে পারে

উদাহরণ: fullHashes.find

HTTP POST অনুরোধ

নিম্নলিখিত উদাহরণে, দুটি নিরাপদ ব্রাউজিং তালিকার নাম এবং তিনটি হ্যাশ উপসর্গ তুলনা এবং যাচাইকরণের জন্য পাঠানো হয়েছে৷

শিরোনাম অনুরোধ করুন

অনুরোধ শিরোনাম অনুরোধ URL এবং বিষয়বস্তু প্রকার অন্তর্ভুক্ত. URL-এ API_KEY এর জন্য আপনার API কী প্রতিস্থাপন করতে ভুলবেন না।

POST https://safebrowsing.googleapis.com/v4/fullHashes:find?key=API_KEY HTTP/1.1
Content-Type: application/json

শরীরের অনুরোধ

রিকোয়েস্ট বডিতে ক্লায়েন্টের তথ্য (আইডি এবং ভার্সন), ক্লায়েন্ট স্টেটস এবং হুমকি সংক্রান্ত তথ্য (তালিকার নাম এবং হ্যাশ উপসর্গ) অন্তর্ভুক্ত থাকে। JSON অনুরোধের জন্য, হ্যাশ উপসর্গ অবশ্যই base64-এনকোডেড আকারে পাঠাতে হবে। আরও বিশদ বিবরণের জন্য, fullHashes.find অনুরোধের মূল অংশ এবং কোড উদাহরণ অনুসরণ করে ব্যাখ্যাগুলি দেখুন।

{
  "client": {
    "clientId":      "yourcompanyname",
    "clientVersion": "1.5.2"
  },
  "clientStates": [
    "ChAIARABGAEiAzAwMSiAEDABEAE=",
    "ChAIAhABGAEiAzAwMSiAEDABEOgH"
  ],
  "threatInfo": {
    "threatTypes":      ["MALWARE", "SOCIAL_ENGINEERING"],
    "platformTypes":    ["WINDOWS"],
    "threatEntryTypes": ["URL"],
    "threatEntries": [
      {"hash": "WwuJdQ=="},
      {"hash": "771MOg=="},
      {"hash": "5eOrwQ=="}
    ]
  }
}
ক্লায়েন্ট তথ্য

clientID এবং clientVersion ক্ষেত্রগুলিকে স্বতন্ত্রভাবে একটি ক্লায়েন্ট বাস্তবায়ন সনাক্ত করা উচিত, একটি পৃথক ব্যবহারকারী নয়। (সার্ভার-সাইড লগিংয়ে ক্লায়েন্টের তথ্য ব্যবহার করা হয়। আপনি ক্লায়েন্ট আইডির জন্য যেকোনো নাম বেছে নিতে পারেন, কিন্তু আমরা আপনাকে এমন একটি নাম বেছে নেওয়ার পরামর্শ দিই যা ক্লায়েন্টের আসল পরিচয়কে প্রতিনিধিত্ব করে, যেমন আপনার কোম্পানির নাম, সমস্ত একটি শব্দ হিসাবে উপস্থাপিত, ছোট হাতের অক্ষর।)

সমস্ত ক্লায়েন্ট রাষ্ট্র

clientStates ক্ষেত্রটি ক্লায়েন্টের স্থানীয় ডাটাবেসের সমস্ত নিরাপদ ব্রাউজিং তালিকার জন্য ক্লায়েন্ট স্টেট ধারণ করে। (ক্লায়েন্ট স্টেটগুলি হুমকিListUpdates.fetch প্রতিক্রিয়ার newClientState ক্ষেত্রে ফেরত দেওয়া হয়।)

নিরাপদ ব্রাউজিং তালিকা

threatTypes , platformTypes , এবং threatEntryTypes ক্ষেত্রগুলি নিরাপদ ব্রাউজিং তালিকাগুলি সনাক্ত করতে (নাম) একত্রিত করে৷ উদাহরণে, দুটি তালিকা চিহ্নিত করা হয়েছে: MALWARE/WINDOWS/URL এবং SOCIAL_ENGINEERING/WINDOWS/URL৷ একটি অনুরোধ পাঠানোর আগে, নিশ্চিত করুন যে আপনার নির্দিষ্ট ধরনের সমন্বয় বৈধ ( নিরাপদ ব্রাউজিং তালিকা দেখুন)।

হুমকি হ্যাশ উপসর্গ

থ্রেট এন্ট্রি অ্যারেতে আপনি যে URL গুলি চেক করতে চান তার হ্যাশ উপসর্গ রয়েছে৷ hash ফিল্ডে অবশ্যই স্থানীয় ডাটাবেসে উপস্থিত সঠিক হ্যাশ উপসর্গ থাকতে হবে। উদাহরণস্বরূপ, যদি স্থানীয় হ্যাশ উপসর্গটি 4 বাইট দীর্ঘ হয় তবে হুমকি এন্ট্রিটি 4 বাইট দীর্ঘ হতে হবে। যদি স্থানীয় হ্যাশ উপসর্গটি 7 বাইট পর্যন্ত লম্বা করা হয় তবে হুমকি এন্ট্রিটি 7 বাইট দীর্ঘ হতে হবে।

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

দ্রষ্টব্য: Update API এবং fullHashes.find পদ্ধতিতে সর্বদা hash ক্ষেত্র ব্যবহার করা উচিত, URL ক্ষেত্র কখনই নয় (দেখুন ThreatEntry )।

HTTP POST প্রতিক্রিয়া

নিম্নলিখিত উদাহরণে, প্রতিক্রিয়াটি ক্যাশে এবং অপেক্ষার সময়কাল সহ নিরাপদ ব্রাউজিং তালিকা দ্বারা সংগঠিত মিলে যাওয়া ডেটা প্রদান করে।

প্রতিক্রিয়া শিরোনাম

প্রতিক্রিয়া শিরোনামে HTTP স্থিতি কোড এবং বিষয়বস্তুর প্রকার অন্তর্ভুক্ত রয়েছে। HTTP/200 ছাড়া অন্য একটি স্ট্যাটাস কোড গ্রহণকারী ক্লায়েন্টদের অবশ্যই ব্যাক-অফ করতে হবে ( অনুরোধের ফ্রিকোয়েন্সি দেখুন)।

HTTP/1.1 200 OK
Content-Type: application/json

প্রতিক্রিয়া শরীর

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

{
  "matches": [{
    "threatType":      "MALWARE",
    "platformType":    "WINDOWS",
    "threatEntryType": "URL",
    "threat": {
      "hash": "WwuJdQx48jP-4lxr4y2Sj82AWoxUVcIRDSk1PC9Rf-4="
    },
    "threatEntryMetadata": {
      "entries": [{
        "key": "bWFsd2FyZV90aHJlYXRfdHlwZQ==",  // base64-encoded "malware_threat_type"
        "value": "TEFORElORw=="  // base64-encoded "LANDING"
       }]
    },
    "cacheDuration": "300.000s"
  }, {
    "threatType":      "SOCIAL_ENGINEERING",
    "platformType":    "WINDOWS",
    "threatEntryType": "URL",
    "threat": {
      "hash": "771MOrRPMn6xPKlCrXx_CrR-wmCk0LgFFoSgGy7zUiA="
    },
    "threatEntryMetadata": {
      "entries": []
    },
    "cacheDuration": "300.000s"
  }],
  "minimumWaitDuration": "300.000s",
  "negativeCacheDuration": "300.000s"
}
মেলে

ম্যাচ অবজেক্ট দুটি হ্যাশ উপসর্গের জন্য একটি মিলে যাওয়া পূর্ণ-দৈর্ঘ্যের হ্যাশ প্রদান করে। এই হ্যাশগুলির সাথে সম্পর্কিত URLগুলিকে অনিরাপদ বলে মনে করা হয়৷ তৃতীয় হ্যাশ উপসর্গের জন্য কোনো মিল পাওয়া যায়নি, তাই কিছুই ফেরত দেওয়া হয় না; এই হ্যাশ উপসর্গের সাথে সংশ্লিষ্ট URL নিরাপদ বলে বিবেচিত হয়।

মনে রাখবেন যে এই উদাহরণটি একটি পূর্ণ-দৈর্ঘ্যের হ্যাশ থেকে একটি হ্যাশ উপসর্গের সাথে মিলে যায়; তবে, একাধিক পূর্ণ হ্যাশ থাকতে পারে যা একই হ্যাশ উপসর্গে ম্যাপ করে।

মেটাডেটা

threatEntryMetadata ক্ষেত্রটি ঐচ্ছিক এবং হুমকির মিল সম্পর্কে অতিরিক্ত তথ্য প্রদান করে। বর্তমানে, MALWARE/WINDOWS/URL নিরাপদ ব্রাউজিং তালিকার জন্য মেটাডেটা উপলব্ধ ( মেটাডেটা দেখুন)।

ক্যাশে সময়কাল

cacheDuration এবং negativeCacheDuration ক্ষেত্রগুলি নির্দেশ করে যে হ্যাশগুলিকে অনিরাপদ বা নিরাপদ হিসাবে বিবেচনা করা আবশ্যক ( ক্যাশিং দেখুন)।

ন্যূনতম অপেক্ষার সময়কাল

minimumWaitDuration ক্ষেত্র নির্দেশ করে যে ক্লায়েন্টকে অন্য একটি ফুলহ্যাশ অনুরোধ পাঠানোর আগে 300 সেকেন্ড (5 মিনিট) অপেক্ষা করতে হবে। মনে রাখবেন যে একটি অপেক্ষার সময় প্রতিক্রিয়াতে অন্তর্ভুক্ত হতে পারে বা নাও হতে পারে ( অনুরোধের ফ্রিকোয়েন্সি দেখুন)।

,

ওভারভিউ

আপডেট API আপনার ক্লায়েন্ট অ্যাপ্লিকেশনগুলিকে স্থানীয় ডাটাবেসে স্টোরেজের জন্য নিরাপদ ব্রাউজিং তালিকার হ্যাশড সংস্করণ ডাউনলোড করতে দেয়৷ URL তারপর স্থানীয়ভাবে চেক করা যেতে পারে. শুধুমাত্র স্থানীয় ডাটাবেসে একটি মিল পাওয়া গেলেই ক্লায়েন্টকে নিরাপদ ব্রাউজিং সার্ভারে URLটি নিরাপদ ব্রাউজিং তালিকায় অন্তর্ভুক্ত করা হয়েছে কিনা তা যাচাই করার জন্য একটি অনুরোধ পাঠাতে হবে।

আপডেট API ব্যবহার করার আগে, আপনাকে একটি স্থানীয় ডাটাবেস সেট আপ করতে হবে। নিরাপদ ব্রাউজিং একটি গো প্যাকেজ প্রদান করে যা আপনি চলতে ব্যবহার করতে পারেন। আরও বিশদ বিবরণের জন্য, স্থানীয় ডেটাবেসগুলির অধীনে ডেটাবেস সেটআপ বিভাগটি দেখুন।

স্থানীয় ডাটাবেস আপডেট করা হচ্ছে

বর্তমান থাকার জন্য, ক্লায়েন্টদের পর্যায়ক্রমে তাদের স্থানীয় ডাটাবেসে নিরাপদ ব্রাউজিং তালিকা আপডেট করতে হবে। ব্যান্ডউইথ সংরক্ষণ করতে, ক্লায়েন্টরা কাঁচা URL-এর পরিবর্তে URL-এর হ্যাশ উপসর্গগুলি ডাউনলোড করে। উদাহরণস্বরূপ, যদি "www.badurl.com/" একটি নিরাপদ ব্রাউজিং তালিকায় থাকে, তাহলে ক্লায়েন্টরা URL-এর পরিবর্তে সেই URL-এর SHA256 হ্যাশ প্রিফিক্স ডাউনলোড করে৷ বেশিরভাগ ক্ষেত্রে হ্যাশ উপসর্গগুলি 4 বাইট দীর্ঘ হয়, যার অর্থ একটি একক তালিকা এন্ট্রি ডাউনলোড করার গড় ব্যান্ডউইথ খরচ কম্প্রেশনের আগে 4 বাইট।

স্থানীয় ডাটাবেসে নিরাপদ ব্রাউজিং তালিকা আপডেট করতে, হুমকিListUpdates.fetch পদ্ধতিতে একটি HTTP POST অনুরোধ পাঠান:

  • HTTP POST অনুরোধে মেমরি এবং ব্যান্ডউইথ সীমাবদ্ধতার জন্য অ্যাকাউন্টে বিভিন্ন ক্লায়েন্ট সীমাবদ্ধতার সাথে আপডেট করা তালিকার নাম অন্তর্ভুক্ত রয়েছে।
  • HTTP POST প্রতিক্রিয়া একটি সম্পূর্ণ আপডেট বা একটি আংশিক আপডেট প্রদান করে। প্রতিক্রিয়াটি ন্যূনতম অপেক্ষার সময়কালও ফিরিয়ে দিতে পারে

উদাহরণ: হুমকিListUpdates.fetch

HTTP POST অনুরোধ

নিম্নলিখিত উদাহরণে, একটি একক নিরাপদ ব্রাউজিং তালিকার আপডেটের জন্য অনুরোধ করা হয়েছে৷

শিরোনাম অনুরোধ করুন

অনুরোধ শিরোনাম অনুরোধ URL এবং বিষয়বস্তু প্রকার অন্তর্ভুক্ত. URL-এ API_KEY এর জন্য আপনার API কী প্রতিস্থাপন করতে ভুলবেন না।

POST https://safebrowsing.googleapis.com/v4/threatListUpdates:fetch?key=API_KEY HTTP/1.1
Content-Type: application/json

শরীরের অনুরোধ

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

{
  "client": {
    "clientId":       "yourcompanyname",
    "clientVersion":  "1.5.2"
  },
  "listUpdateRequests": [{
    "threatType":      "MALWARE",
    "platformType":    "WINDOWS",
    "threatEntryType": "URL",
    "state":           "Gg4IBBADIgYQgBAiAQEoAQ==",
    "constraints": {
      "maxUpdateEntries":      2048,
      "maxDatabaseEntries":    4096,
      "region":                "US",
      "supportedCompressions": ["RAW"]
    }
  }]
}
ক্লায়েন্ট তথ্য

clientID এবং clientVersion ক্ষেত্রগুলিকে স্বতন্ত্রভাবে একটি ক্লায়েন্ট বাস্তবায়ন সনাক্ত করা উচিত, একটি পৃথক ব্যবহারকারী নয়। (সার্ভার-সাইড লগিংয়ে ক্লায়েন্টের তথ্য ব্যবহার করা হয়। আপনি ক্লায়েন্ট আইডির জন্য যেকোনো নাম বেছে নিতে পারেন কিন্তু আমরা আপনাকে এমন একটি নাম বেছে নেওয়ার পরামর্শ দিই যা ক্লায়েন্টের আসল পরিচয়কে প্রতিনিধিত্ব করে, যেমন আপনার কোম্পানির নাম, সব মিলিয়ে একটি শব্দ হিসেবে উপস্থাপিত। -ছোট হাতের অক্ষর।)

নিরাপদ ব্রাউজিং তালিকা

threatType , platformType , এবং threatEntryType ক্ষেত্রগুলিকে নিরাপদ ব্রাউজিং তালিকাগুলি সনাক্ত করতে (নাম) একত্রিত করা হয়েছে৷ উদাহরণে, একটি তালিকা চিহ্নিত করা হয়েছে: ম্যালওয়্যার/উইন্ডোজ/ইউআরএল। একটি অনুরোধ পাঠানোর আগে, নিশ্চিত করুন যে আপনার নির্দিষ্ট ধরনের সমন্বয় বৈধ ( নিরাপদ ব্রাউজিং তালিকা দেখুন)।

ক্লায়েন্টের অবস্থা

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

আকারের সীমাবদ্ধতা

maxUpdateEntries ক্ষেত্রটি ক্লায়েন্ট পরিচালনা করতে পারে এমন আপডেটের মোট সংখ্যা নির্দিষ্ট করে (উদাহরণস্বরূপ, 2048)। maxDatabaseEntries ফিল্ড স্থানীয় ডাটাবেস পরিচালনা করতে পারে এমন মোট এন্ট্রির সংখ্যা নির্দিষ্ট করে (উদাহরণস্বরূপ, 4096)। ক্লায়েন্টদের মেমরি এবং ব্যান্ডউইথ সীমাবদ্ধতা রক্ষা করতে এবং তালিকা বৃদ্ধির বিরুদ্ধে সুরক্ষার জন্য আকারের সীমাবদ্ধতা সেট করা উচিত। আরও তথ্যের জন্য, ( আপডেট সীমাবদ্ধতা দেখুন)।

সমর্থিত কম্প্রেশন

supportedCompressions ক্ষেত্রটি ক্লায়েন্ট সমর্থন করে এমন কম্প্রেশন প্রকারের তালিকা করে। উদাহরণে, ক্লায়েন্ট শুধুমাত্র কাঁচা, সংকুচিত ডেটা সমর্থন করে। তবে নিরাপদ ব্রাউজিং অতিরিক্ত কম্প্রেশন প্রকারগুলিকে সমর্থন করে ( সংকোচন দেখুন)।

HTTP POST প্রতিক্রিয়া

এই উদাহরণে, প্রতিক্রিয়া অনুরোধ করা সংকোচন প্রকার ব্যবহার করে নিরাপদ ব্রাউজিং তালিকার জন্য একটি আংশিক আপডেট প্রদান করে।

প্রতিক্রিয়া শিরোনাম

প্রতিক্রিয়া শিরোনামে HTTP স্থিতি কোড এবং বিষয়বস্তুর প্রকার অন্তর্ভুক্ত রয়েছে। ক্লায়েন্ট যারা HTTP/200 ছাড়া অন্য একটি স্ট্যাটাস কোড পায় তাদের অবশ্যই ব্যাক-অফ মোডে প্রবেশ করতে হবে ( অনুরোধের ফ্রিকোয়েন্সি দেখুন)।

HTTP/1.1 200 OK
Content-Type: application/json

প্রতিক্রিয়া শরীর

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

{
  "listUpdateResponses": [{
    "threatType":      "MALWARE",
    "threatEntryType": "URL",
    "platformType":    "WINDOWS",
    "responseType" :   "PARTIAL_UPDATE",
    "additions": [{
      "compressionType": "RAW",
      "rawHashes": {
        "prefixSize": 4,
        "rawHashes":  "rnGLoQ=="
      }
    }],
    "removals": [{
      "compressionType": "RAW",
      "rawIndices": {
        "indices": [0, 2, 4]
      }
    }],
    "newClientState": "ChAIBRADGAEiAzAwMSiAEDABEAFGpqhd",
    "checksum": {
      "sha256": "YSgoRtsRlgHDqDA3LAhM1gegEpEzs1TjzU33vqsR8iM="
    }
  }],
  "minimumWaitDuration": "593.440s"
}
ডাটাবেস আপডেট

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

নতুন ক্লায়েন্ট রাষ্ট্র

newClientState ক্ষেত্রটি নতুন আপডেট করা নিরাপদ ব্রাউজিং তালিকার জন্য নতুন ক্লায়েন্টের অবস্থা ধারণ করে। পরবর্তী আপডেটের অনুরোধের জন্য ক্লায়েন্টদের অবশ্যই নতুন ক্লায়েন্ট স্টেট সংরক্ষণ করতে হবে ( thatrateListUpdates.fetch অনুরোধের state ক্ষেত্র বা fullHashes.find অনুরোধে clientStates ক্ষেত্র)।

চেকসাম

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

ন্যূনতম অপেক্ষার সময়কাল

minimumWaitDuration ক্ষেত্র নির্দেশ করে যে ক্লায়েন্টকে অন্য একটি আপডেটের অনুরোধ পাঠানোর আগে 593.44 সেকেন্ড (9.89 মিনিট) অপেক্ষা করতে হবে। মনে রাখবেন যে একটি অপেক্ষার সময় প্রতিক্রিয়াতে অন্তর্ভুক্ত হতে পারে বা নাও হতে পারে ( অনুরোধের ফ্রিকোয়েন্সি দেখুন)।

ইউআরএল চেক করা হচ্ছে

একটি URL একটি নিরাপদ ব্রাউজিং তালিকায় আছে কিনা তা পরীক্ষা করতে, ক্লায়েন্টকে প্রথমে URL এর হ্যাশ এবং হ্যাশ উপসর্গ গণনা করতে হবে ( URL এবং হ্যাশিং দেখুন)। তারপরে ক্লায়েন্ট স্থানীয় ডাটাবেসকে জিজ্ঞাসা করে যে একটি মিল আছে কিনা তা নির্ধারণ করতে। যদি স্থানীয় ডাটাবেসে হ্যাশ উপসর্গ না থাকে , তাহলে ইউআরএল নিরাপদ বলে বিবেচিত হয় (নিরাপদ ব্রাউজিং তালিকায় নয়)।

হ্যাশ উপসর্গ স্থানীয় ডাটাবেসে উপস্থিত থাকলে (একটি হ্যাশ উপসর্গ সংঘর্ষ), ক্লায়েন্টকে অবশ্যই হ্যাশ উপসর্গটি যাচাইয়ের জন্য নিরাপদ ব্রাউজিং সার্ভারে পাঠাতে হবে। সার্ভারগুলি প্রদত্ত হ্যাশ উপসর্গ ধারণ করে এমন সমস্ত পূর্ণ-দৈর্ঘ্যের SHA 256 হ্যাশ ফেরত দেবে। যদি সেই পূর্ণ-দৈর্ঘ্যের হ্যাশগুলির মধ্যে একটি প্রশ্নযুক্ত URL-এর পূর্ণ-দৈর্ঘ্যের হ্যাশের সাথে মিলে যায়, তাহলে URLটিকে অনিরাপদ বলে মনে করা হয়। যদি পূর্ণ-দৈর্ঘ্যের কোনো হ্যাশ প্রশ্নে থাকা URL-এর পূর্ণ-দৈর্ঘ্যের হ্যাশের সাথে মেলে না, তাহলে সেই URLটি নিরাপদ বলে বিবেচিত হয়।

আপনি যে ইউআরএলগুলি পরীক্ষা করছেন সেগুলি সম্পর্কে Google কোন সময়েই জানতে পারে না। Google URL-এর হ্যাশ উপসর্গগুলি শিখে, কিন্তু হ্যাশ উপসর্গগুলি প্রকৃত URL সম্পর্কে বেশি তথ্য প্রদান করে না৷

একটি URL একটি নিরাপদ ব্রাউজিং তালিকায় আছে কিনা তা পরীক্ষা করতে, fullHashes.find পদ্ধতিতে একটি HTTP POST অনুরোধ পাঠান:

  • HTTP POST অনুরোধে 500টি পর্যন্ত হুমকি এন্ট্রি অন্তর্ভুক্ত থাকতে পারে।
  • HTTP POST অনুরোধে চেক করা URLগুলির হ্যাশ প্রিফিক্স অন্তর্ভুক্ত রয়েছে৷ ব্যান্ডউইথ ব্যবহার কম করার জন্য ক্লায়েন্টদের একটি একক অনুরোধে একাধিক হুমকি এন্ট্রি ব্যাচ করতে উত্সাহিত করা হয়।
  • HTTP POST প্রতিক্রিয়া ইতিবাচক এবং নেতিবাচক ক্যাশে সময়কালের সাথে মিলে যাওয়া পূর্ণ-দৈর্ঘ্যের হ্যাশগুলি প্রদান করে। প্রতিক্রিয়াটি ন্যূনতম অপেক্ষার সময়কালও ফিরিয়ে দিতে পারে

উদাহরণ: fullHashes.find

HTTP POST অনুরোধ

নিম্নলিখিত উদাহরণে, দুটি নিরাপদ ব্রাউজিং তালিকার নাম এবং তিনটি হ্যাশ উপসর্গ তুলনা এবং যাচাইকরণের জন্য পাঠানো হয়েছে৷

শিরোনাম অনুরোধ করুন

অনুরোধ শিরোনাম অনুরোধ URL এবং বিষয়বস্তু প্রকার অন্তর্ভুক্ত. URL-এ API_KEY এর জন্য আপনার API কী প্রতিস্থাপন করতে ভুলবেন না।

POST https://safebrowsing.googleapis.com/v4/fullHashes:find?key=API_KEY HTTP/1.1
Content-Type: application/json

শরীরের অনুরোধ

রিকোয়েস্ট বডিতে ক্লায়েন্টের তথ্য (আইডি এবং ভার্সন), ক্লায়েন্ট স্টেটস এবং হুমকি সংক্রান্ত তথ্য (তালিকার নাম এবং হ্যাশ উপসর্গ) অন্তর্ভুক্ত থাকে। JSON অনুরোধের জন্য, হ্যাশ উপসর্গ অবশ্যই base64-এনকোডেড আকারে পাঠাতে হবে। আরও বিশদ বিবরণের জন্য, fullHashes.find অনুরোধের মূল অংশ এবং কোড উদাহরণ অনুসরণ করে ব্যাখ্যাগুলি দেখুন।

{
  "client": {
    "clientId":      "yourcompanyname",
    "clientVersion": "1.5.2"
  },
  "clientStates": [
    "ChAIARABGAEiAzAwMSiAEDABEAE=",
    "ChAIAhABGAEiAzAwMSiAEDABEOgH"
  ],
  "threatInfo": {
    "threatTypes":      ["MALWARE", "SOCIAL_ENGINEERING"],
    "platformTypes":    ["WINDOWS"],
    "threatEntryTypes": ["URL"],
    "threatEntries": [
      {"hash": "WwuJdQ=="},
      {"hash": "771MOg=="},
      {"hash": "5eOrwQ=="}
    ]
  }
}
ক্লায়েন্ট তথ্য

clientID এবং clientVersion ক্ষেত্রগুলিকে স্বতন্ত্রভাবে একটি ক্লায়েন্ট বাস্তবায়ন সনাক্ত করা উচিত, একটি পৃথক ব্যবহারকারী নয়। (সার্ভার-সাইড লগিংয়ে ক্লায়েন্টের তথ্য ব্যবহার করা হয়। আপনি ক্লায়েন্ট আইডির জন্য যেকোনো নাম বেছে নিতে পারেন, কিন্তু আমরা আপনাকে এমন একটি নাম বেছে নেওয়ার পরামর্শ দিই যা ক্লায়েন্টের আসল পরিচয়কে প্রতিনিধিত্ব করে, যেমন আপনার কোম্পানির নাম, সমস্ত একটি শব্দ হিসাবে উপস্থাপিত, ছোট হাতের অক্ষর।)

সমস্ত ক্লায়েন্ট রাষ্ট্র

clientStates ক্ষেত্রটি ক্লায়েন্টের স্থানীয় ডাটাবেসের সমস্ত নিরাপদ ব্রাউজিং তালিকার জন্য ক্লায়েন্ট স্টেট ধারণ করে। (ক্লায়েন্ট স্টেটগুলি হুমকিListUpdates.fetch প্রতিক্রিয়ার newClientState ক্ষেত্রে ফেরত দেওয়া হয়।)

নিরাপদ ব্রাউজিং তালিকা

threatTypes , platformTypes , এবং threatEntryTypes ক্ষেত্রগুলি নিরাপদ ব্রাউজিং তালিকাগুলি সনাক্ত করতে (নাম) একত্রিত করে৷ উদাহরণে, দুটি তালিকা চিহ্নিত করা হয়েছে: MALWARE/WINDOWS/URL এবং SOCIAL_ENGINEERING/WINDOWS/URL৷ একটি অনুরোধ পাঠানোর আগে, নিশ্চিত করুন যে আপনার নির্দিষ্ট ধরনের সমন্বয় বৈধ ( নিরাপদ ব্রাউজিং তালিকা দেখুন)।

হুমকি হ্যাশ উপসর্গ

থ্রেট এন্ট্রি অ্যারেতে আপনি যে URL গুলি চেক করতে চান তার হ্যাশ উপসর্গ রয়েছে৷ hash ফিল্ডে অবশ্যই স্থানীয় ডাটাবেসে উপস্থিত সঠিক হ্যাশ উপসর্গ থাকতে হবে। উদাহরণস্বরূপ, যদি স্থানীয় হ্যাশ উপসর্গটি 4 বাইট দীর্ঘ হয় তবে হুমকি এন্ট্রিটি 4 বাইট দীর্ঘ হতে হবে। যদি স্থানীয় হ্যাশ উপসর্গটি 7 বাইট পর্যন্ত লম্বা করা হয় তবে হুমকি এন্ট্রিটি 7 বাইট দীর্ঘ হতে হবে।

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

দ্রষ্টব্য: Update API এবং fullHashes.find পদ্ধতিতে সর্বদা hash ক্ষেত্র ব্যবহার করা উচিত, URL ক্ষেত্র কখনই নয় (দেখুন ThreatEntry )।

HTTP POST প্রতিক্রিয়া

নিম্নলিখিত উদাহরণে, প্রতিক্রিয়াটি ক্যাশে এবং অপেক্ষার সময়কাল সহ নিরাপদ ব্রাউজিং তালিকা দ্বারা সংগঠিত মিলে যাওয়া ডেটা প্রদান করে।

প্রতিক্রিয়া শিরোনাম

প্রতিক্রিয়া শিরোনামে HTTP স্থিতি কোড এবং বিষয়বস্তুর প্রকার অন্তর্ভুক্ত রয়েছে। HTTP/200 ছাড়া অন্য একটি স্ট্যাটাস কোড গ্রহণকারী ক্লায়েন্টদের অবশ্যই ব্যাক-অফ করতে হবে ( অনুরোধের ফ্রিকোয়েন্সি দেখুন)।

HTTP/1.1 200 OK
Content-Type: application/json

প্রতিক্রিয়া শরীর

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

{
  "matches": [{
    "threatType":      "MALWARE",
    "platformType":    "WINDOWS",
    "threatEntryType": "URL",
    "threat": {
      "hash": "WwuJdQx48jP-4lxr4y2Sj82AWoxUVcIRDSk1PC9Rf-4="
    },
    "threatEntryMetadata": {
      "entries": [{
        "key": "bWFsd2FyZV90aHJlYXRfdHlwZQ==",  // base64-encoded "malware_threat_type"
        "value": "TEFORElORw=="  // base64-encoded "LANDING"
       }]
    },
    "cacheDuration": "300.000s"
  }, {
    "threatType":      "SOCIAL_ENGINEERING",
    "platformType":    "WINDOWS",
    "threatEntryType": "URL",
    "threat": {
      "hash": "771MOrRPMn6xPKlCrXx_CrR-wmCk0LgFFoSgGy7zUiA="
    },
    "threatEntryMetadata": {
      "entries": []
    },
    "cacheDuration": "300.000s"
  }],
  "minimumWaitDuration": "300.000s",
  "negativeCacheDuration": "300.000s"
}
মেলে

ম্যাচ অবজেক্ট দুটি হ্যাশ উপসর্গের জন্য একটি মিলে যাওয়া পূর্ণ-দৈর্ঘ্যের হ্যাশ প্রদান করে। এই হ্যাশগুলির সাথে সম্পর্কিত URLগুলিকে অনিরাপদ বলে মনে করা হয়৷ তৃতীয় হ্যাশ উপসর্গের জন্য কোনো মিল পাওয়া যায়নি, তাই কিছুই ফেরত দেওয়া হয় না; এই হ্যাশ উপসর্গের সাথে সংশ্লিষ্ট URL নিরাপদ বলে বিবেচিত হয়।

মনে রাখবেন যে এই উদাহরণটি একটি পূর্ণ-দৈর্ঘ্যের হ্যাশ থেকে একটি হ্যাশ উপসর্গের সাথে মিলে যায়; তবে, একাধিক পূর্ণ হ্যাশ থাকতে পারে যা একই হ্যাশ উপসর্গে ম্যাপ করে।

মেটাডেটা

threatEntryMetadata ক্ষেত্রটি ঐচ্ছিক এবং হুমকির মিল সম্পর্কে অতিরিক্ত তথ্য প্রদান করে। বর্তমানে, MALWARE/WINDOWS/URL নিরাপদ ব্রাউজিং তালিকার জন্য মেটাডেটা উপলব্ধ ( মেটাডেটা দেখুন)।

ক্যাশে সময়কাল

cacheDuration এবং negativeCacheDuration ক্ষেত্রগুলি নির্দেশ করে যে হ্যাশগুলিকে অনিরাপদ বা নিরাপদ হিসাবে বিবেচনা করা আবশ্যক ( ক্যাশিং দেখুন)।

ন্যূনতম অপেক্ষার সময়কাল

minimumWaitDuration ক্ষেত্রটি নির্দেশ করে যে ক্লায়েন্টকে অন্য একটি fullHashes অনুরোধ পাঠানোর আগে 300 সেকেন্ড (5 মিনিট) অপেক্ষা করতে হবে। মনে রাখবেন যে একটি অপেক্ষার সময় প্রতিক্রিয়াতে অন্তর্ভুক্ত হতে পারে বা নাও হতে পারে ( অনুরোধের ফ্রিকোয়েন্সি দেখুন)।

,

ওভারভিউ

আপডেট API আপনার ক্লায়েন্ট অ্যাপ্লিকেশনগুলিকে স্থানীয় ডাটাবেসে স্টোরেজের জন্য নিরাপদ ব্রাউজিং তালিকার হ্যাশড সংস্করণ ডাউনলোড করতে দেয়৷ URL তারপর স্থানীয়ভাবে চেক করা যেতে পারে. শুধুমাত্র স্থানীয় ডাটাবেসে একটি মিল পাওয়া গেলেই ক্লায়েন্টকে নিরাপদ ব্রাউজিং সার্ভারে URLটি নিরাপদ ব্রাউজিং তালিকায় অন্তর্ভুক্ত করা হয়েছে কিনা তা যাচাই করার জন্য একটি অনুরোধ পাঠাতে হবে।

আপডেট API ব্যবহার করার আগে, আপনাকে একটি স্থানীয় ডাটাবেস সেট আপ করতে হবে। নিরাপদ ব্রাউজিং একটি গো প্যাকেজ প্রদান করে যা আপনি চলতে ব্যবহার করতে পারেন। আরও বিশদ বিবরণের জন্য, স্থানীয় ডেটাবেসগুলির অধীনে ডেটাবেস সেটআপ বিভাগটি দেখুন।

স্থানীয় ডাটাবেস আপডেট করা হচ্ছে

বর্তমান থাকার জন্য, ক্লায়েন্টদের পর্যায়ক্রমে তাদের স্থানীয় ডাটাবেসে নিরাপদ ব্রাউজিং তালিকা আপডেট করতে হবে। ব্যান্ডউইথ সংরক্ষণ করতে, ক্লায়েন্টরা কাঁচা URL-এর পরিবর্তে URL-এর হ্যাশ উপসর্গগুলি ডাউনলোড করে। উদাহরণস্বরূপ, যদি "www.badurl.com/" একটি নিরাপদ ব্রাউজিং তালিকায় থাকে, তাহলে ক্লায়েন্টরা URL-এর পরিবর্তে সেই URL-এর SHA256 হ্যাশ প্রিফিক্স ডাউনলোড করে৷ বেশিরভাগ ক্ষেত্রে হ্যাশ উপসর্গগুলি 4 বাইট দীর্ঘ হয়, যার অর্থ একটি একক তালিকা এন্ট্রি ডাউনলোড করার গড় ব্যান্ডউইথ খরচ কম্প্রেশনের আগে 4 বাইট।

স্থানীয় ডাটাবেসে নিরাপদ ব্রাউজিং তালিকা আপডেট করতে, হুমকিListUpdates.fetch পদ্ধতিতে একটি HTTP POST অনুরোধ পাঠান:

  • HTTP POST অনুরোধে মেমরি এবং ব্যান্ডউইথ সীমাবদ্ধতার জন্য অ্যাকাউন্টে বিভিন্ন ক্লায়েন্ট সীমাবদ্ধতার সাথে আপডেট করা তালিকার নাম অন্তর্ভুক্ত রয়েছে।
  • HTTP POST প্রতিক্রিয়া একটি সম্পূর্ণ আপডেট বা একটি আংশিক আপডেট প্রদান করে। প্রতিক্রিয়াটি ন্যূনতম অপেক্ষার সময়কালও ফিরিয়ে দিতে পারে

উদাহরণ: হুমকিListUpdates.fetch

HTTP POST অনুরোধ

নিম্নলিখিত উদাহরণে, একটি একক নিরাপদ ব্রাউজিং তালিকার আপডেটের জন্য অনুরোধ করা হয়েছে৷

শিরোনাম অনুরোধ করুন

অনুরোধ শিরোনাম অনুরোধ URL এবং বিষয়বস্তু প্রকার অন্তর্ভুক্ত. URL-এ API_KEY এর জন্য আপনার API কী প্রতিস্থাপন করতে ভুলবেন না।

POST https://safebrowsing.googleapis.com/v4/threatListUpdates:fetch?key=API_KEY HTTP/1.1
Content-Type: application/json

শরীরের অনুরোধ

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

{
  "client": {
    "clientId":       "yourcompanyname",
    "clientVersion":  "1.5.2"
  },
  "listUpdateRequests": [{
    "threatType":      "MALWARE",
    "platformType":    "WINDOWS",
    "threatEntryType": "URL",
    "state":           "Gg4IBBADIgYQgBAiAQEoAQ==",
    "constraints": {
      "maxUpdateEntries":      2048,
      "maxDatabaseEntries":    4096,
      "region":                "US",
      "supportedCompressions": ["RAW"]
    }
  }]
}
ক্লায়েন্ট তথ্য

clientID এবং clientVersion ক্ষেত্রগুলিকে স্বতন্ত্রভাবে একটি ক্লায়েন্ট বাস্তবায়ন সনাক্ত করা উচিত, একটি পৃথক ব্যবহারকারী নয়। (সার্ভার-সাইড লগিংয়ে ক্লায়েন্টের তথ্য ব্যবহার করা হয়। আপনি ক্লায়েন্ট আইডির জন্য যেকোনো নাম বেছে নিতে পারেন কিন্তু আমরা আপনাকে এমন একটি নাম বেছে নেওয়ার পরামর্শ দিই যা ক্লায়েন্টের আসল পরিচয়কে প্রতিনিধিত্ব করে, যেমন আপনার কোম্পানির নাম, সব মিলিয়ে একটি শব্দ হিসেবে উপস্থাপিত। -ছোট হাতের অক্ষর।)

নিরাপদ ব্রাউজিং তালিকা

threatType , platformType , এবং threatEntryType ক্ষেত্রগুলিকে নিরাপদ ব্রাউজিং তালিকাগুলি সনাক্ত করতে (নাম) একত্রিত করা হয়েছে৷ উদাহরণে, একটি তালিকা চিহ্নিত করা হয়েছে: ম্যালওয়্যার/উইন্ডোজ/ইউআরএল। একটি অনুরোধ পাঠানোর আগে, নিশ্চিত করুন যে আপনার নির্দিষ্ট ধরনের সমন্বয় বৈধ ( নিরাপদ ব্রাউজিং তালিকা দেখুন)।

ক্লায়েন্টের অবস্থা

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

আকারের সীমাবদ্ধতা

maxUpdateEntries ক্ষেত্রটি ক্লায়েন্ট পরিচালনা করতে পারে এমন আপডেটের মোট সংখ্যা নির্দিষ্ট করে (উদাহরণস্বরূপ, 2048)। maxDatabaseEntries ফিল্ড স্থানীয় ডাটাবেস পরিচালনা করতে পারে এমন মোট এন্ট্রির সংখ্যা নির্দিষ্ট করে (উদাহরণস্বরূপ, 4096)। ক্লায়েন্টদের মেমরি এবং ব্যান্ডউইথ সীমাবদ্ধতা রক্ষা করতে এবং তালিকা বৃদ্ধির বিরুদ্ধে সুরক্ষার জন্য আকারের সীমাবদ্ধতা সেট করা উচিত। আরও তথ্যের জন্য, ( আপডেট সীমাবদ্ধতা দেখুন)।

সমর্থিত কম্প্রেশন

supportedCompressions ক্ষেত্রটি ক্লায়েন্ট সমর্থন করে এমন কম্প্রেশন প্রকারের তালিকা করে। উদাহরণে, ক্লায়েন্ট শুধুমাত্র কাঁচা, সংকুচিত ডেটা সমর্থন করে। তবে নিরাপদ ব্রাউজিং অতিরিক্ত কম্প্রেশন প্রকারগুলিকে সমর্থন করে ( সংকোচন দেখুন)।

HTTP POST প্রতিক্রিয়া

এই উদাহরণে, প্রতিক্রিয়া অনুরোধ করা সংকোচন প্রকার ব্যবহার করে নিরাপদ ব্রাউজিং তালিকার জন্য একটি আংশিক আপডেট প্রদান করে।

প্রতিক্রিয়া শিরোনাম

প্রতিক্রিয়া শিরোনামে HTTP স্থিতি কোড এবং বিষয়বস্তুর প্রকার অন্তর্ভুক্ত রয়েছে। ক্লায়েন্ট যারা HTTP/200 ছাড়া অন্য একটি স্ট্যাটাস কোড পায় তাদের অবশ্যই ব্যাক-অফ মোডে প্রবেশ করতে হবে ( অনুরোধের ফ্রিকোয়েন্সি দেখুন)।

HTTP/1.1 200 OK
Content-Type: application/json

প্রতিক্রিয়া শরীর

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

{
  "listUpdateResponses": [{
    "threatType":      "MALWARE",
    "threatEntryType": "URL",
    "platformType":    "WINDOWS",
    "responseType" :   "PARTIAL_UPDATE",
    "additions": [{
      "compressionType": "RAW",
      "rawHashes": {
        "prefixSize": 4,
        "rawHashes":  "rnGLoQ=="
      }
    }],
    "removals": [{
      "compressionType": "RAW",
      "rawIndices": {
        "indices": [0, 2, 4]
      }
    }],
    "newClientState": "ChAIBRADGAEiAzAwMSiAEDABEAFGpqhd",
    "checksum": {
      "sha256": "YSgoRtsRlgHDqDA3LAhM1gegEpEzs1TjzU33vqsR8iM="
    }
  }],
  "minimumWaitDuration": "593.440s"
}
ডাটাবেস আপডেট

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

নতুন ক্লায়েন্ট রাষ্ট্র

newClientState ক্ষেত্রটি নতুন আপডেট করা নিরাপদ ব্রাউজিং তালিকার জন্য নতুন ক্লায়েন্টের অবস্থা ধারণ করে। পরবর্তী আপডেটের অনুরোধের জন্য ক্লায়েন্টদের অবশ্যই নতুন ক্লায়েন্ট স্টেট সংরক্ষণ করতে হবে ( thatrateListUpdates.fetch অনুরোধের state ক্ষেত্র বা fullHashes.find অনুরোধে clientStates ক্ষেত্র)।

চেকসাম

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

ন্যূনতম অপেক্ষার সময়কাল

minimumWaitDuration ক্ষেত্র নির্দেশ করে যে ক্লায়েন্টকে অন্য একটি আপডেটের অনুরোধ পাঠানোর আগে 593.44 সেকেন্ড (9.89 মিনিট) অপেক্ষা করতে হবে। মনে রাখবেন যে একটি অপেক্ষার সময় প্রতিক্রিয়াতে অন্তর্ভুক্ত হতে পারে বা নাও হতে পারে ( অনুরোধের ফ্রিকোয়েন্সি দেখুন)।

ইউআরএল চেক করা হচ্ছে

একটি URL একটি নিরাপদ ব্রাউজিং তালিকায় আছে কিনা তা পরীক্ষা করতে, ক্লায়েন্টকে প্রথমে URL এর হ্যাশ এবং হ্যাশ উপসর্গ গণনা করতে হবে ( URL এবং হ্যাশিং দেখুন)। তারপরে ক্লায়েন্ট স্থানীয় ডাটাবেসকে জিজ্ঞাসা করে যে একটি মিল আছে কিনা তা নির্ধারণ করতে। যদি স্থানীয় ডাটাবেসে হ্যাশ উপসর্গ না থাকে , তাহলে ইউআরএল নিরাপদ বলে বিবেচিত হয় (নিরাপদ ব্রাউজিং তালিকায় নয়)।

হ্যাশ উপসর্গ স্থানীয় ডাটাবেসে উপস্থিত থাকলে (একটি হ্যাশ উপসর্গ সংঘর্ষ), ক্লায়েন্টকে অবশ্যই হ্যাশ উপসর্গটি যাচাইয়ের জন্য নিরাপদ ব্রাউজিং সার্ভারে পাঠাতে হবে। সার্ভারগুলি প্রদত্ত হ্যাশ উপসর্গ ধারণ করে এমন সমস্ত পূর্ণ-দৈর্ঘ্যের SHA 256 হ্যাশ ফেরত দেবে। যদি সেই পূর্ণ-দৈর্ঘ্যের হ্যাশগুলির মধ্যে একটি প্রশ্নযুক্ত URL-এর পূর্ণ-দৈর্ঘ্যের হ্যাশের সাথে মিলে যায়, তাহলে URLটিকে অনিরাপদ বলে মনে করা হয়। যদি পূর্ণ-দৈর্ঘ্যের কোনো হ্যাশ প্রশ্নে থাকা URL-এর পূর্ণ-দৈর্ঘ্যের হ্যাশের সাথে মেলে না, তাহলে সেই URLটি নিরাপদ বলে বিবেচিত হয়।

আপনি যে ইউআরএলগুলি পরীক্ষা করছেন সেগুলি সম্পর্কে Google কোন সময়েই জানতে পারে না। Google URL-এর হ্যাশ উপসর্গগুলি শিখে, কিন্তু হ্যাশ উপসর্গগুলি প্রকৃত URL সম্পর্কে বেশি তথ্য প্রদান করে না৷

একটি URL একটি নিরাপদ ব্রাউজিং তালিকায় আছে কিনা তা পরীক্ষা করতে, fullHashes.find পদ্ধতিতে একটি HTTP POST অনুরোধ পাঠান:

  • HTTP POST অনুরোধে 500টি পর্যন্ত হুমকি এন্ট্রি অন্তর্ভুক্ত থাকতে পারে।
  • HTTP POST অনুরোধে চেক করা URLগুলির হ্যাশ প্রিফিক্স অন্তর্ভুক্ত রয়েছে৷ ব্যান্ডউইথ ব্যবহার কম করার জন্য ক্লায়েন্টদের একটি একক অনুরোধে একাধিক হুমকি এন্ট্রি ব্যাচ করতে উত্সাহিত করা হয়।
  • HTTP POST প্রতিক্রিয়া ইতিবাচক এবং নেতিবাচক ক্যাশে সময়কালের সাথে মিলে যাওয়া পূর্ণ-দৈর্ঘ্যের হ্যাশগুলি প্রদান করে। প্রতিক্রিয়াটি ন্যূনতম অপেক্ষার সময়কালও ফিরিয়ে দিতে পারে

উদাহরণ: fullHashes.find

HTTP POST অনুরোধ

নিম্নলিখিত উদাহরণে, দুটি নিরাপদ ব্রাউজিং তালিকার নাম এবং তিনটি হ্যাশ উপসর্গ তুলনা এবং যাচাইকরণের জন্য পাঠানো হয়েছে৷

শিরোনাম অনুরোধ করুন

অনুরোধ শিরোনাম অনুরোধ URL এবং বিষয়বস্তু প্রকার অন্তর্ভুক্ত. URL-এ API_KEY এর জন্য আপনার API কী প্রতিস্থাপন করতে ভুলবেন না।

POST https://safebrowsing.googleapis.com/v4/fullHashes:find?key=API_KEY HTTP/1.1
Content-Type: application/json

শরীরের অনুরোধ

রিকোয়েস্ট বডিতে ক্লায়েন্টের তথ্য (আইডি এবং ভার্সন), ক্লায়েন্ট স্টেটস এবং হুমকি সংক্রান্ত তথ্য (তালিকার নাম এবং হ্যাশ উপসর্গ) অন্তর্ভুক্ত থাকে। JSON অনুরোধের জন্য, হ্যাশ উপসর্গ অবশ্যই base64-এনকোডেড আকারে পাঠাতে হবে। আরও বিশদ বিবরণের জন্য, fullHashes.find অনুরোধের মূল অংশ এবং কোড উদাহরণ অনুসরণ করে ব্যাখ্যাগুলি দেখুন।

{
  "client": {
    "clientId":      "yourcompanyname",
    "clientVersion": "1.5.2"
  },
  "clientStates": [
    "ChAIARABGAEiAzAwMSiAEDABEAE=",
    "ChAIAhABGAEiAzAwMSiAEDABEOgH"
  ],
  "threatInfo": {
    "threatTypes":      ["MALWARE", "SOCIAL_ENGINEERING"],
    "platformTypes":    ["WINDOWS"],
    "threatEntryTypes": ["URL"],
    "threatEntries": [
      {"hash": "WwuJdQ=="},
      {"hash": "771MOg=="},
      {"hash": "5eOrwQ=="}
    ]
  }
}
ক্লায়েন্ট তথ্য

clientID এবং clientVersion ক্ষেত্রগুলিকে স্বতন্ত্রভাবে একটি ক্লায়েন্ট বাস্তবায়ন সনাক্ত করা উচিত, একটি পৃথক ব্যবহারকারী নয়। (সার্ভার-সাইড লগিংয়ে ক্লায়েন্টের তথ্য ব্যবহার করা হয়। আপনি ক্লায়েন্ট আইডির জন্য যেকোনো নাম বেছে নিতে পারেন, কিন্তু আমরা আপনাকে এমন একটি নাম বেছে নেওয়ার পরামর্শ দিই যা ক্লায়েন্টের আসল পরিচয়কে প্রতিনিধিত্ব করে, যেমন আপনার কোম্পানির নাম, সমস্ত একটি শব্দ হিসাবে উপস্থাপিত, ছোট হাতের অক্ষর।)

সমস্ত ক্লায়েন্ট রাষ্ট্র

clientStates ক্ষেত্রটি ক্লায়েন্টের স্থানীয় ডাটাবেসের সমস্ত নিরাপদ ব্রাউজিং তালিকার জন্য ক্লায়েন্ট স্টেট ধারণ করে। (ক্লায়েন্ট স্টেটগুলি হুমকিListUpdates.fetch প্রতিক্রিয়ার newClientState ক্ষেত্রে ফেরত দেওয়া হয়।)

নিরাপদ ব্রাউজিং তালিকা

threatTypes , platformTypes , এবং threatEntryTypes ক্ষেত্রগুলি নিরাপদ ব্রাউজিং তালিকাগুলি সনাক্ত করতে (নাম) একত্রিত করে৷ উদাহরণে, দুটি তালিকা চিহ্নিত করা হয়েছে: MALWARE/WINDOWS/URL এবং SOCIAL_ENGINEERING/WINDOWS/URL৷ একটি অনুরোধ পাঠানোর আগে, নিশ্চিত করুন যে আপনার নির্দিষ্ট ধরনের সমন্বয় বৈধ ( নিরাপদ ব্রাউজিং তালিকা দেখুন)।

হুমকি হ্যাশ উপসর্গ

থ্রেট এন্ট্রি অ্যারেতে আপনি যে URL গুলি চেক করতে চান তার হ্যাশ উপসর্গ রয়েছে৷ hash ফিল্ডে অবশ্যই স্থানীয় ডাটাবেসে উপস্থিত সঠিক হ্যাশ উপসর্গ থাকতে হবে। উদাহরণস্বরূপ, যদি স্থানীয় হ্যাশ উপসর্গটি 4 বাইট দীর্ঘ হয় তবে হুমকি এন্ট্রিটি 4 বাইট দীর্ঘ হতে হবে। যদি স্থানীয় হ্যাশ উপসর্গটি 7 বাইট পর্যন্ত লম্বা করা হয় তবে হুমকি এন্ট্রিটি 7 বাইট দীর্ঘ হতে হবে।

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

দ্রষ্টব্য: Update API এবং fullHashes.find পদ্ধতিতে সর্বদা hash ক্ষেত্র ব্যবহার করা উচিত, URL ক্ষেত্র কখনই নয় (দেখুন ThreatEntry )।

HTTP POST প্রতিক্রিয়া

নিম্নলিখিত উদাহরণে, প্রতিক্রিয়াটি ক্যাশে এবং অপেক্ষা করা সময়সীমার পাশাপাশি নিরাপদ ব্রাউজিং তালিকা দ্বারা সংগঠিত ম্যাচিং ডেটা ফেরত দেয়।

প্রতিক্রিয়া শিরোনাম

প্রতিক্রিয়া শিরোনামে এইচটিটিপি স্থিতি কোড এবং সামগ্রীর ধরণ অন্তর্ভুক্ত রয়েছে। এইচটিটিপি/200 ব্যতীত অন্য কোনও স্ট্যাটাস কোড প্রাপ্ত ক্লায়েন্টদের অবশ্যই ব্যাক-অফ করতে হবে ( অনুরোধের ফ্রিকোয়েন্সি দেখুন)।

HTTP/1.1 200 OK
Content-Type: application/json

প্রতিক্রিয়া শরীর

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

{
  "matches": [{
    "threatType":      "MALWARE",
    "platformType":    "WINDOWS",
    "threatEntryType": "URL",
    "threat": {
      "hash": "WwuJdQx48jP-4lxr4y2Sj82AWoxUVcIRDSk1PC9Rf-4="
    },
    "threatEntryMetadata": {
      "entries": [{
        "key": "bWFsd2FyZV90aHJlYXRfdHlwZQ==",  // base64-encoded "malware_threat_type"
        "value": "TEFORElORw=="  // base64-encoded "LANDING"
       }]
    },
    "cacheDuration": "300.000s"
  }, {
    "threatType":      "SOCIAL_ENGINEERING",
    "platformType":    "WINDOWS",
    "threatEntryType": "URL",
    "threat": {
      "hash": "771MOrRPMn6xPKlCrXx_CrR-wmCk0LgFFoSgGy7zUiA="
    },
    "threatEntryMetadata": {
      "entries": []
    },
    "cacheDuration": "300.000s"
  }],
  "minimumWaitDuration": "300.000s",
  "negativeCacheDuration": "300.000s"
}
মেলে

ম্যাচগুলি অবজেক্টটি দুটি হ্যাশ উপসর্গের জন্য একটি ম্যাচিং পূর্ণ দৈর্ঘ্যের হ্যাশ ফেরত দেয়। এই হ্যাশগুলির সাথে সম্পর্কিত ইউআরএলগুলি অনিরাপদ হিসাবে বিবেচিত হয়। তৃতীয় হ্যাশ উপসর্গের জন্য কোনও মিল খুঁজে পাওয়া যায় নি, তাই কিছুই ফিরে আসে না; এই হ্যাশ উপসর্গের সাথে সম্পর্কিত ইউআরএল নিরাপদ হিসাবে বিবেচিত হয়।

নোট করুন যে এই উদাহরণটি একটি হ্যাশ উপসর্গের সাথে একটি পূর্ণ দৈর্ঘ্যের হ্যাশের সাথে মেলে; তবে, একই হ্যাশ উপসর্গের জন্য সেই মানচিত্রটি একাধিক পূর্ণ হ্যাশ থাকতে পারে।

মেটাডেটা

threatEntryMetadata ক্ষেত্রটি al চ্ছিক এবং হুমকি ম্যাচ সম্পর্কে অতিরিক্ত তথ্য সরবরাহ করে। বর্তমানে, মেটাডেটা ম্যালওয়্যার/উইন্ডোজ/ইউআরএল নিরাপদ ব্রাউজিং তালিকার জন্য উপলব্ধ ( মেটাডেটা দেখুন)।

ক্যাশে সময়কাল

cacheDuration এবং negativeCacheDuration ক্ষেত্রগুলি হ্যাশগুলি অনিরাপদ বা নিরাপদ হিসাবে বিবেচনা করতে হবে এমন পরিমাণ নির্দেশ করে ( ক্যাচিং দেখুন)।

সর্বনিম্ন অপেক্ষা করা সময়সীমা

minimumWaitDuration ক্ষেত্রটি নির্দেশ করে যে ক্লায়েন্টকে অন্য ফুলহ্যাশের অনুরোধ প্রেরণের আগে 300 সেকেন্ড (5 মিনিট) অপেক্ষা করতে হবে। নোট করুন যে একটি অপেক্ষার সময়কাল প্রতিক্রিয়াতে অন্তর্ভুক্ত থাকতে পারে বা নাও হতে পারে ( অনুরোধের ফ্রিকোয়েন্সি দেখুন)।

,

ওভারভিউ

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

আপডেট এপিআই ব্যবহার করার আগে আপনাকে একটি স্থানীয় ডাটাবেস সেট আপ করতে হবে। নিরাপদ ব্রাউজিং একটি গো প্যাকেজ সরবরাহ করে যা আপনি যেতে ব্যবহার করতে পারেন। আরও তথ্যের জন্য, স্থানীয় ডাটাবেসের অধীনে ডাটাবেস সেটআপ বিভাগটি দেখুন।

স্থানীয় ডাটাবেস আপডেট করা হচ্ছে

বর্তমান থাকার জন্য, ক্লায়েন্টদের তাদের স্থানীয় ডাটাবেসে নিরাপদ ব্রাউজিং তালিকাগুলি পর্যায়ক্রমে আপডেট করতে হবে। ব্যান্ডউইথ সংরক্ষণ করতে, ক্লায়েন্টরা কাঁচা ইউআরএলগুলির চেয়ে ইউআরএলগুলির হ্যাশ উপসর্গগুলি ডাউনলোড করে। উদাহরণস্বরূপ, যদি "www.badurl.com/" নিরাপদ ব্রাউজিং তালিকায় থাকে তবে ক্লায়েন্টরা ইউআরএল নিজেই না হয়ে সেই ইউআরএলটির SHA256 হ্যাশ উপসর্গটি ডাউনলোড করে। বেশিরভাগ ক্ষেত্রে হ্যাশ উপসর্গগুলি 4 বাইট দীর্ঘ, যার অর্থ একক তালিকা এন্ট্রি ডাউনলোড করার গড় ব্যান্ডউইথ ব্যয় সংকোচনের আগে 4 বাইট হয়।

স্থানীয় ডাটাবেসে নিরাপদ ব্রাউজিং তালিকাগুলি আপডেট করতে, হুমকি তালিকাগুলিতে একটি এইচটিটিপি POST অনুরোধ প্রেরণ করুন eth ফেচ পদ্ধতি:

  • এইচটিটিপি POST অনুরোধে মেমরি এবং ব্যান্ডউইথ সীমাবদ্ধতার জন্য অ্যাকাউন্টে বিভিন্ন ক্লায়েন্টের সীমাবদ্ধতার সাথে আপডেট করার জন্য তালিকার নাম অন্তর্ভুক্ত রয়েছে।
  • এইচটিটিপি POST প্রতিক্রিয়া একটি সম্পূর্ণ আপডেট বা একটি আংশিক আপডেট ফেরত দেয়। প্রতিক্রিয়াটি ন্যূনতম অপেক্ষার সময়কালও ফিরে আসতে পারে

উদাহরণ: হুমকি তালিকা.ফেচ

HTTP পোস্ট অনুরোধ

নিম্নলিখিত উদাহরণে, একক নিরাপদ ব্রাউজিং তালিকার জন্য আপডেটগুলি অনুরোধ করা হয়েছে।

শিরোনাম অনুরোধ করুন

অনুরোধ শিরোনামে অনুরোধ ইউআরএল এবং সামগ্রীর ধরণ অন্তর্ভুক্ত রয়েছে। আপনার এপিআই কীটি ইউআরএলে API_KEY এর জন্য প্রতিস্থাপন করতে ভুলবেন না।

POST https://safebrowsing.googleapis.com/v4/threatListUpdates:fetch?key=API_KEY HTTP/1.1
Content-Type: application/json

শরীরের অনুরোধ

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

{
  "client": {
    "clientId":       "yourcompanyname",
    "clientVersion":  "1.5.2"
  },
  "listUpdateRequests": [{
    "threatType":      "MALWARE",
    "platformType":    "WINDOWS",
    "threatEntryType": "URL",
    "state":           "Gg4IBBADIgYQgBAiAQEoAQ==",
    "constraints": {
      "maxUpdateEntries":      2048,
      "maxDatabaseEntries":    4096,
      "region":                "US",
      "supportedCompressions": ["RAW"]
    }
  }]
}
ক্লায়েন্ট তথ্য

clientID এবং clientVersion ক্ষেত্রগুলি কোনও স্বতন্ত্র ব্যবহারকারী নয়, ক্লায়েন্ট বাস্তবায়নকে অনন্যভাবে সনাক্ত করতে হবে। (ক্লায়েন্টের তথ্য সার্ভার-সাইড লগিংয়ে ব্যবহৃত হয় You আপনি ক্লায়েন্ট আইডির জন্য যে কোনও নাম চয়ন করতে পারেন তবে আমরা আপনাকে এমন একটি নাম বেছে নেওয়ার পরামর্শ দিই যা ক্লায়েন্টের সত্য পরিচয় উপস্থাপন করে, যেমন আপনার কোম্পানির নাম, সমস্ত একটি শব্দ হিসাবে উপস্থাপিত, সমস্ত ক্ষেত্রে -লোয়ারকেস অক্ষর।)

নিরাপদ ব্রাউজিং তালিকা

threatType , platformType এবং threatEntryType ক্ষেত্রগুলি নিরাপদ ব্রাউজিং তালিকাগুলি সনাক্ত করতে (নাম) সনাক্ত করতে একত্রিত করা হয়। উদাহরণস্বরূপ, একটি তালিকা চিহ্নিত করা হয়েছে: ম্যালওয়্যার/উইন্ডোজ/ইউআরএল। কোনও অনুরোধ প্রেরণের আগে, আপনার নির্দিষ্ট করা টাইপ সংমিশ্রণগুলি বৈধ ( নিরাপদ ব্রাউজিং তালিকাগুলি দেখুন) নিশ্চিত করুন।

ক্লায়েন্টের অবস্থা

state ক্ষেত্রটি নিরাপদ ব্রাউজিং তালিকার বর্তমান ক্লায়েন্টের অবস্থা ধারণ করে। state ক্লায়েন্টের রাজ্যগুলি হুমকি তালিকাগুলির newClientState ক্ষেত্রে ফিরে আসে eth

আকারের সীমাবদ্ধতা

maxUpdateEntries ক্ষেত্রটি ক্লায়েন্ট পরিচালনা করতে পারে এমন মোট আপডেটের সংখ্যা নির্দিষ্ট করে (উদাহরণস্বরূপ, 2048)। maxDatabaseEntries ক্ষেত্রটি স্থানীয় ডাটাবেস পরিচালনা করতে পারে এমন মোট এন্ট্রিগুলির সংখ্যা নির্দিষ্ট করে (উদাহরণস্বরূপ, 4096)। ক্লায়েন্টদের মেমরি এবং ব্যান্ডউইথ সীমাবদ্ধতাগুলি রক্ষা করতে এবং তালিকা বৃদ্ধির বিরুদ্ধে সুরক্ষার জন্য আকারের সীমাবদ্ধতা সেট করা উচিত। আরও তথ্যের জন্য, ( আপডেটের সীমাবদ্ধতাগুলি দেখুন)।

সমর্থিত সংকোচনের

supportedCompressions ক্ষেত্রটি ক্লায়েন্টকে সমর্থন করে এমন সংকোচনের প্রকারগুলি তালিকাভুক্ত করে। উদাহরণস্বরূপ, ক্লায়েন্ট কেবল কাঁচা, সঙ্কুচিত ডেটা সমর্থন করে। নিরাপদ ব্রাউজিং, তবে অতিরিক্ত সংক্ষেপণের ধরণগুলিকে সমর্থন করে ( সংক্ষেপণ দেখুন)।

এইচটিটিপি পোস্ট প্রতিক্রিয়া

এই উদাহরণে, প্রতিক্রিয়া অনুরোধ করা সংকোচনের ধরণটি ব্যবহার করে নিরাপদ ব্রাউজিং তালিকার জন্য একটি আংশিক আপডেট দেয়।

প্রতিক্রিয়া শিরোনাম

প্রতিক্রিয়া শিরোনামে এইচটিটিপি স্থিতি কোড এবং সামগ্রীর ধরণ অন্তর্ভুক্ত রয়েছে। এইচটিটিপি/200 ব্যতীত অন্য কোনও স্ট্যাটাস কোড প্রাপ্ত ক্লায়েন্টদের অবশ্যই ব্যাক-অফ মোডে প্রবেশ করতে হবে ( অনুরোধের ফ্রিকোয়েন্সি দেখুন)।

HTTP/1.1 200 OK
Content-Type: application/json

প্রতিক্রিয়া শরীর

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

{
  "listUpdateResponses": [{
    "threatType":      "MALWARE",
    "threatEntryType": "URL",
    "platformType":    "WINDOWS",
    "responseType" :   "PARTIAL_UPDATE",
    "additions": [{
      "compressionType": "RAW",
      "rawHashes": {
        "prefixSize": 4,
        "rawHashes":  "rnGLoQ=="
      }
    }],
    "removals": [{
      "compressionType": "RAW",
      "rawIndices": {
        "indices": [0, 2, 4]
      }
    }],
    "newClientState": "ChAIBRADGAEiAzAwMSiAEDABEAFGpqhd",
    "checksum": {
      "sha256": "YSgoRtsRlgHDqDA3LAhM1gegEpEzs1TjzU33vqsR8iM="
    }
  }],
  "minimumWaitDuration": "593.440s"
}
ডাটাবেস আপডেট

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

নতুন ক্লায়েন্ট রাজ্য

newClientState ফিল্ডটি নতুন আপডেট হওয়া নিরাপদ ব্রাউজিং তালিকার জন্য নতুন ক্লায়েন্টের রাজ্য ধারণ করে। ক্লায়েন্টদের অবশ্যই পরবর্তী আপডেটের অনুরোধগুলির clientStates নতুন ক্লায়েন্টের অবস্থা সংরক্ষণ করতে হবে ( হুমকি তালিকাগুলিতে state ক্ষেত্র

চেকসাম

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

সর্বনিম্ন অপেক্ষা করা সময়সীমা

minimumWaitDuration ক্ষেত্রটি নির্দেশ করে যে ক্লায়েন্টকে অন্য আপডেট অনুরোধ প্রেরণের আগে 593.44 সেকেন্ড (9.89 মিনিট) অপেক্ষা করতে হবে। নোট করুন যে একটি অপেক্ষার সময়কাল প্রতিক্রিয়াতে অন্তর্ভুক্ত থাকতে পারে বা নাও হতে পারে ( অনুরোধের ফ্রিকোয়েন্সি দেখুন)।

ইউআরএল পরীক্ষা করা হচ্ছে

কোনও ইউআরএল নিরাপদ ব্রাউজিং তালিকায় রয়েছে কিনা তা পরীক্ষা করতে ক্লায়েন্টকে প্রথমে ইউআরএল এর হ্যাশ এবং হ্যাশ উপসর্গটি গণনা করতে হবে ( ইউআরএল এবং হ্যাশিং দেখুন)। ক্লায়েন্ট তারপরে কোনও মিল আছে কিনা তা নির্ধারণের জন্য স্থানীয় ডাটাবেসকে জিজ্ঞাসা করে। যদি হ্যাশ উপসর্গটি স্থানীয় ডাটাবেসে উপস্থিত না থাকে তবে ইউআরএলটি নিরাপদ হিসাবে বিবেচিত হয় (নিরাপদ ব্রাউজিং তালিকায় নয়)।

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

গুগল আপনি যে ইউআরএলগুলি পরীক্ষা করছেন সেগুলি সম্পর্কে কোনও মুহুর্তে জানতে পারে না। গুগল ইউআরএলগুলির হ্যাশ উপসর্গগুলি শিখেছে, তবে হ্যাশ উপসর্গগুলি প্রকৃত ইউআরএল সম্পর্কে খুব বেশি তথ্য সরবরাহ করে না।

কোনও ইউআরএল কোনও নিরাপদ ব্রাউজিং তালিকায় রয়েছে কিনা তা পরীক্ষা করতে, ফুলহ্যাশগুলিতে একটি HTTP POST অনুরোধ প্রেরণ করুন F ফাইন্ড পদ্ধতি:

  • এইচটিটিপি POST অনুরোধে 500 টি পর্যন্ত হুমকি এন্ট্রি অন্তর্ভুক্ত থাকতে পারে।
  • এইচটিটিপি POST অনুরোধে URLS এর হ্যাশ উপসর্গগুলি যাচাই করার জন্য অন্তর্ভুক্ত রয়েছে। ক্লায়েন্টদের ব্যান্ডউইথ ব্যবহারের জন্য একক অনুরোধে একাধিক হুমকি এন্ট্রি ব্যাচ করতে উত্সাহিত করা হয়।
  • এইচটিটিপি POST প্রতিক্রিয়াটি ম্যাচিং পূর্ণ দৈর্ঘ্যের হ্যাশগুলি ইতিবাচক এবং নেতিবাচক ক্যাশে সময়কালের সাথে ফিরিয়ে দেয়। প্রতিক্রিয়াটি ন্যূনতম অপেক্ষার সময়কালও ফিরে আসতে পারে

উদাহরণ: ফুলহ্যাশস.ফাইন্ড

HTTP পোস্ট অনুরোধ

নিম্নলিখিত উদাহরণে, দুটি নিরাপদ ব্রাউজিং তালিকা এবং তিনটি হ্যাশ উপসর্গের নাম তুলনা এবং যাচাইয়ের জন্য প্রেরণ করা হয়েছে।

শিরোনাম অনুরোধ করুন

অনুরোধ শিরোনামে অনুরোধ ইউআরএল এবং সামগ্রীর ধরণ অন্তর্ভুক্ত রয়েছে। আপনার এপিআই কীটি ইউআরএলে API_KEY এর জন্য প্রতিস্থাপন করতে ভুলবেন না।

POST https://safebrowsing.googleapis.com/v4/fullHashes:find?key=API_KEY HTTP/1.1
Content-Type: application/json

শরীরের অনুরোধ

অনুরোধ বডিটিতে ক্লায়েন্টের তথ্য (আইডি এবং সংস্করণ), ক্লায়েন্টের রাজ্যগুলি এবং হুমকির তথ্য (তালিকার নাম এবং হ্যাশ উপসর্গ) অন্তর্ভুক্ত রয়েছে। জেএসএন অনুরোধগুলির জন্য, হ্যাশ উপসর্গগুলি অবশ্যই বেস 64-এনকোডেড আকারে প্রেরণ করতে হবে। আরও তথ্যের জন্য, ফুলহ্যাশগুলি দেখুন F আপনি অনুরোধের বডি এবং কোড উদাহরণ অনুসরণ করে এমন ব্যাখ্যাগুলি।

{
  "client": {
    "clientId":      "yourcompanyname",
    "clientVersion": "1.5.2"
  },
  "clientStates": [
    "ChAIARABGAEiAzAwMSiAEDABEAE=",
    "ChAIAhABGAEiAzAwMSiAEDABEOgH"
  ],
  "threatInfo": {
    "threatTypes":      ["MALWARE", "SOCIAL_ENGINEERING"],
    "platformTypes":    ["WINDOWS"],
    "threatEntryTypes": ["URL"],
    "threatEntries": [
      {"hash": "WwuJdQ=="},
      {"hash": "771MOg=="},
      {"hash": "5eOrwQ=="}
    ]
  }
}
ক্লায়েন্ট তথ্য

clientID এবং clientVersion ক্ষেত্রগুলি কোনও স্বতন্ত্র ব্যবহারকারী নয়, ক্লায়েন্ট বাস্তবায়নকে অনন্যভাবে সনাক্ত করতে হবে। (ক্লায়েন্টের তথ্য সার্ভার-সাইড লগিংয়ে ব্যবহৃত হয় You আপনি ক্লায়েন্ট আইডির জন্য যে কোনও নাম চয়ন করতে পারেন, তবে আমরা আপনাকে পরামর্শ দিচ্ছি যে আপনি এমন একটি নাম চয়ন করুন যা ক্লায়েন্টের সত্য পরিচয় উপস্থাপন করে, যেমন আপনার সংস্থার নাম, সমস্ত একটি শব্দ হিসাবে উপস্থাপিত, ইন অল-লোয়ারকেস অক্ষর।)

সমস্ত ক্লায়েন্ট রাজ্য

clientStates ফিল্ড ক্লায়েন্টের স্থানীয় ডাটাবেসে সমস্ত নিরাপদ ব্রাউজিং তালিকার জন্য ক্লায়েন্টের রাজ্যগুলি ধারণ করে। (ক্লায়েন্টের রাজ্যগুলি হুমকি তালিকাগুলির newClientState ক্ষেত্রে ফিরে আসে etch ফেচ প্রতিক্রিয়া ))

নিরাপদ ব্রাউজিং তালিকা

threatTypes , platformTypes এবং threatEntryTypes ক্ষেত্রগুলি নিরাপদ ব্রাউজিং তালিকাগুলি সনাক্ত করতে (নাম) সনাক্ত করতে একত্রিত হয়। উদাহরণস্বরূপ, দুটি তালিকা চিহ্নিত করা হয়েছে: ম্যালওয়্যার/উইন্ডোজ/ইউআরএল এবং সোশ্যাল_জাইনারিং/উইন্ডোজ/ইউআরএল। কোনও অনুরোধ প্রেরণের আগে, আপনার নির্দিষ্ট করা টাইপ সংমিশ্রণগুলি বৈধ ( নিরাপদ ব্রাউজিং তালিকাগুলি দেখুন) নিশ্চিত করুন।

হুমকি হ্যাশ উপসর্গ

হুমকি অ্যারেতে আপনি যে ইউআরএলগুলি যাচাই করতে চান তার হ্যাশ উপসর্গ রয়েছে। hash ফিল্ডে অবশ্যই স্থানীয় ডাটাবেসে উপস্থিত সঠিক হ্যাশ উপসর্গ থাকতে হবে। উদাহরণস্বরূপ, যদি স্থানীয় হ্যাশ উপসর্গটি 4 বাইট দীর্ঘ হয় তবে হুমকি এন্ট্রি অবশ্যই 4 বাইট দীর্ঘ হতে হবে। যদি স্থানীয় হ্যাশ উপসর্গটি 7 বাইটে লম্বা করা হয় তবে হুমকি এন্ট্রি অবশ্যই 7 বাইট দীর্ঘ হতে হবে।

উদাহরণস্বরূপ, অনুরোধে তিনটি হ্যাশ উপসর্গ অন্তর্ভুক্ত রয়েছে। তিনটি উপসর্গের সাথে কোনও মিলে যাওয়া পূর্ণ দৈর্ঘ্যের হ্যাশ রয়েছে কিনা তা নির্ধারণের জন্য প্রতিটি নিরাপদ ব্রাউজিং তালিকার সাথে তুলনা করা হবে।

দ্রষ্টব্য: আপডেট এপিআই এবং ফুলহ্যাশগুলি.ফাইন্ড পদ্ধতিটি সর্বদা hash ক্ষেত্রটি ব্যবহার করা উচিত, কখনই URL ক্ষেত্রটি ব্যবহার করা উচিত নয় ( হুমকি দেখুন)।

এইচটিটিপি পোস্ট প্রতিক্রিয়া

নিম্নলিখিত উদাহরণে, প্রতিক্রিয়াটি ক্যাশে এবং অপেক্ষা করা সময়সীমার পাশাপাশি নিরাপদ ব্রাউজিং তালিকা দ্বারা সংগঠিত ম্যাচিং ডেটা ফেরত দেয়।

প্রতিক্রিয়া শিরোনাম

প্রতিক্রিয়া শিরোনামে এইচটিটিপি স্থিতি কোড এবং সামগ্রীর ধরণ অন্তর্ভুক্ত রয়েছে। এইচটিটিপি/200 ব্যতীত অন্য কোনও স্ট্যাটাস কোড প্রাপ্ত ক্লায়েন্টদের অবশ্যই ব্যাক-অফ করতে হবে ( অনুরোধের ফ্রিকোয়েন্সি দেখুন)।

HTTP/1.1 200 OK
Content-Type: application/json

প্রতিক্রিয়া শরীর

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

{
  "matches": [{
    "threatType":      "MALWARE",
    "platformType":    "WINDOWS",
    "threatEntryType": "URL",
    "threat": {
      "hash": "WwuJdQx48jP-4lxr4y2Sj82AWoxUVcIRDSk1PC9Rf-4="
    },
    "threatEntryMetadata": {
      "entries": [{
        "key": "bWFsd2FyZV90aHJlYXRfdHlwZQ==",  // base64-encoded "malware_threat_type"
        "value": "TEFORElORw=="  // base64-encoded "LANDING"
       }]
    },
    "cacheDuration": "300.000s"
  }, {
    "threatType":      "SOCIAL_ENGINEERING",
    "platformType":    "WINDOWS",
    "threatEntryType": "URL",
    "threat": {
      "hash": "771MOrRPMn6xPKlCrXx_CrR-wmCk0LgFFoSgGy7zUiA="
    },
    "threatEntryMetadata": {
      "entries": []
    },
    "cacheDuration": "300.000s"
  }],
  "minimumWaitDuration": "300.000s",
  "negativeCacheDuration": "300.000s"
}
মেলে

ম্যাচগুলি অবজেক্টটি দুটি হ্যাশ উপসর্গের জন্য একটি ম্যাচিং পূর্ণ দৈর্ঘ্যের হ্যাশ ফেরত দেয়। এই হ্যাশগুলির সাথে সম্পর্কিত ইউআরএলগুলি অনিরাপদ হিসাবে বিবেচিত হয়। তৃতীয় হ্যাশ উপসর্গের জন্য কোনও মিল খুঁজে পাওয়া যায় নি, তাই কিছুই ফিরে আসে না; এই হ্যাশ উপসর্গের সাথে সম্পর্কিত ইউআরএল নিরাপদ হিসাবে বিবেচিত হয়।

নোট করুন যে এই উদাহরণটি একটি হ্যাশ উপসর্গের সাথে একটি পূর্ণ দৈর্ঘ্যের হ্যাশের সাথে মেলে; তবে, একই হ্যাশ উপসর্গের জন্য সেই মানচিত্রটি একাধিক পূর্ণ হ্যাশ থাকতে পারে।

মেটাডেটা

threatEntryMetadata ক্ষেত্রটি al চ্ছিক এবং হুমকি ম্যাচ সম্পর্কে অতিরিক্ত তথ্য সরবরাহ করে। বর্তমানে, মেটাডেটা ম্যালওয়্যার/উইন্ডোজ/ইউআরএল নিরাপদ ব্রাউজিং তালিকার জন্য উপলব্ধ ( মেটাডেটা দেখুন)।

ক্যাশে সময়কাল

cacheDuration এবং negativeCacheDuration ক্ষেত্রগুলি হ্যাশগুলি অনিরাপদ বা নিরাপদ হিসাবে বিবেচনা করতে হবে এমন পরিমাণ নির্দেশ করে ( ক্যাচিং দেখুন)।

সর্বনিম্ন অপেক্ষা করা সময়সীমা

minimumWaitDuration ক্ষেত্রটি নির্দেশ করে যে ক্লায়েন্টকে অন্য ফুলহ্যাশের অনুরোধ প্রেরণের আগে 300 সেকেন্ড (5 মিনিট) অপেক্ষা করতে হবে। নোট করুন যে একটি অপেক্ষার সময়কাল প্রতিক্রিয়াতে অন্তর্ভুক্ত থাকতে পারে বা নাও হতে পারে ( অনুরোধের ফ্রিকোয়েন্সি দেখুন)।