Method: hashes.search

बताए गए प्रीफ़िक्स से मेल खाने वाले पूरे हैश खोजें.

यह पसंद के मुताबिक बनाया गया तरीका है, जैसा कि https://google.aip.dev/136 ने बताया है. कस्टम तरीके का मतलब है कि Google के सामान्य एपीआई डेवलपमेंट नाम में, कस्टम नाम मौजूद है. इसका मतलब यह नहीं है कि कस्टम एचटीटीपी तरीके का इस्तेमाल किया जा सकता है.

एचटीटीपी अनुरोध

GET https://safebrowsing.googleapis.com/v5alpha1/hashes:search

यह यूआरएल gRPC ट्रांसकोडिंग सिंटैक्स का इस्तेमाल करता है.

क्वेरी पैरामीटर

पैरामीटर
hashPrefixes[]

string (bytes format)

ज़रूरी है. खोजने के लिए हैश प्रीफ़िक्स. क्लाइंट को 1,000 से ज़्यादा हैश प्रीफ़िक्स नहीं भेजने चाहिए. हालांकि, यूआरएल प्रोसेस करने की प्रोसेस का पालन करने पर, क्लाइंट को 30 से ज़्यादा हैश प्रीफ़िक्स भेजने की ज़रूरत नहीं होनी चाहिए.

फ़िलहाल, हर हैश प्रीफ़िक्स ठीक 4 बाइट होना ज़रूरी है. आने वाले समय में इससे राहत मिल सकती है.

base64 कोड में बदली गई स्ट्रिंग.

filter

string

ज़रूरी नहीं. अगर क्लाइंट फ़िल्टर करने में दिलचस्पी रखता है, जैसे कि सिर्फ़ खास तरह के खतरों की जानकारी हासिल करना, तो इसके बारे में बताया जा सकता है. अगर इसे छोड़ दिया जाता है, तो मिलते-जुलते सभी खतरों को वापस कर दिया जाता है. हमारा सुझाव है कि आप इस जानकारी को हटा दें, ताकि सुरक्षित ब्राउज़िंग की मदद से आपको सबसे ज़्यादा सुरक्षा मिल सके.

फ़िल्टर को Google कॉमन एक्सप्रेशन लैंग्वेज का इस्तेमाल करके तय किया जाता है. इसे सामान्य उदाहरणों के साथ https://github.com/google/cel-spec पर देखा जा सकता है. यहां कुछ खास उदाहरण दिए गए हैं, जिनका इस्तेमाल यहां किया जा सकता है:

फ़िल्टर "threatType == ThreatType.SOCIAL_ENGINEERING" के लिए यह ज़रूरी है कि FullHashDetail में खतरा का टाइप SOCIAL_ENGINEERING हो. आइडेंटिफ़ायर "threatType", मौजूदा तरह के खतरे के बारे में बताता है. आइडेंटिफ़ायर "ThreatType", सभी संभावित तरह के खतरों का संग्रह है.

फ़िल्टर "threatType in [ ThreatType.UNWANTED_SOFTWARE, ThreatType.MALWARE ]" के लिए ज़रूरी है कि खतरा का टाइप UNWANTED_SOFTWARE या MALWARE हो.

अनुरोध का मुख्य भाग

अनुरोध का मुख्य हिस्सा खाली होना चाहिए.

जवाब का मुख्य भाग

थ्रेट हैश को खोजने से मिलने वाला रिस्पॉन्स.

अगर कुछ भी नहीं मिलता है, तो सर्वर, NOT_FOUND स्थिति (एचटीटीपी स्टेटस कोड 404) के बजाय, fullHashes फ़ील्ड को खाली छोड़कर, 'OK' स्टेटस (एचटीटीपी स्टेटस कोड 200) दिखाएगा.

V5 में नया क्या है: FullHash और FullHashDetail के बीच फ़र्क़ है. इस मामले में, जब हैश एक से ज़्यादा खतरों वाली साइट को दिखाता है (जैसे, MALWARE और SOCIAL_engineERING दोनों), तो पूरे हैश को V4 के मुकाबले दो बार भेजने की ज़रूरत नहीं है. इसके अलावा, कैश मेमोरी की अवधि को एक cacheDuration फ़ील्ड में सरल कर दिया गया है.

अगर एपीआई सही से जुड़ जाता है, ताे जवाब के मुख्य भाग में नीचे दिए गए स्ट्रक्चर शामिल होता है.

JSON के काेड में दिखाना
{
  "fullHashes": [
    {
      object (FullHash)
    }
  ],
  "cacheDuration": string
}
फ़ील्ड
fullHashes[]

object (FullHash)

बिना क्रम वाली सूची. पूरे हैश की बिना क्रम वाली सूची मिली.

cacheDuration

string (Duration format)

क्लाइंट-साइड कैश मेमोरी की अवधि. समयसीमा खत्म होने का समय तय करने के लिए, क्लाइंट को इस अवधि को मौजूदा समय में जोड़ना होगा. इसके बाद, अनुरोध करते समय क्लाइंट की क्वेरी के बाद मिले हर हैश प्रीफ़िक्स पर समयसीमा खत्म हो जाती है. भले ही, रिस्पॉन्स में कितने पूरे हैश दिए गए हों. अगर सर्वर किसी खास हैश प्रीफ़िक्स के लिए पूरे हैश नहीं दिखाता है, तब भी क्लाइंट को इस जानकारी को कैश मेमोरी में सेव करना होगा.

अगर fullHashes फ़ील्ड खाली है, तो क्लाइंट cacheDuration को बढ़ा सकता है, ताकि एक नई समयसीमा तय की जा सके. यह समयसीमा, सर्वर के तय किए गए समय के बाद की है. किसी भी स्थिति में, कैश मेमोरी की बढ़ी हुई अवधि 24 घंटे से ज़्यादा नहीं होनी चाहिए.

अहम जानकारी: क्लाइंट को यह नहीं मानना चाहिए कि सभी रिस्पॉन्स के लिए सर्वर, कैश मेमोरी की एक ही अवधि दिखाएगा. सर्वर, स्थिति के हिसाब से अलग-अलग रिस्पॉन्स के लिए कैश मेमोरी की अलग-अलग अवधि चुन सकता है.

सेकंड में कुल नौ दशमलव अंक, जो 's' पर खत्म होते हैं. उदाहरण: "3.5s".

FullHash

पूरे हैश की पहचान एक या उससे ज़्यादा मैच से की गई.

JSON के काेड में दिखाना
{
  "fullHash": string,
  "fullHashDetails": [
    {
      object (FullHashDetail)
    }
  ]
}
फ़ील्ड
fullHash

string (bytes format)

मैच करने वाला पूरा हैश. यह SHA256 हैश है. लंबाई ठीक 32 बाइट होगी.

base64 कोड में बदली गई स्ट्रिंग.

fullHashDetails[]

object (FullHashDetail)

बिना क्रम वाली सूची. दोहराया गया फ़ील्ड, जो इस पूरे हैश से जुड़ी जानकारी की पहचान करता है.

FullHashDetail

मैच करने वाले पूरे हैश के बारे में जानकारी.

फ़ॉरवर्ड किए जाने वाले काम के साथ काम करने के बारे में ज़रूरी जानकारी: सर्वर किसी भी समय नए तरह के खतरों और एट्रिब्यूट को जोड़ सकता है; उन जोड़ों को वर्शन में किए गए छोटे बदलाव माना जाता है. Google की नीति है कि एपीआई में माइनर वर्शन नंबर न दिखाएं (वर्शन नीति के लिए https://cloud.google.com/apis/design/versioning देखें). इसलिए, क्लाइंट को ThreatType ईनम वैल्यू या ThreatAttribute ईनम वैल्यू वाले FullHashDetail ऐसे मैसेज पाने के लिए तैयार रहना चाहिए जिन्हें क्लाइंट अमान्य माने. इसलिए, ThreatType और ThreatAttribute के सभी ईनम मानों की मान्यता की जांच करना क्लाइंट की ज़िम्मेदारी है; अगर कोई वैल्यू अमान्य लगती है, तो क्लाइंट को पूरे FullHashDetail मैसेज को अनदेखा करना होगा.

JSON के काेड में दिखाना
{
  "threatType": enum (ThreatType),
  "attributes": [
    enum (ThreatAttribute)
  ]
}
फ़ील्ड
threatType

enum (ThreatType)

खतरे का टाइप. यह फ़ील्ड कभी भी खाली नहीं होगी.

attributes[]

enum (ThreatAttribute)

बिना क्रम वाली सूची. उन पूरे हैश के बारे में अतिरिक्त एट्रिब्यूट. यह खाली हो सकता है.

ThreatAttribute

खतरों के एट्रिब्यूट. इन एट्रिब्यूट का मतलब, किसी खास खतरे को और बढ़ सकता है. हालांकि, इनसे खतरे के टाइप पर कोई असर नहीं पड़ेगा. उदाहरण के लिए, कोई एट्रिब्यूट कम कॉन्फ़िडेंस को बता सकता है, जबकि कोई दूसरा एट्रिब्यूट, ज़्यादा कॉन्फ़िडेंस के बारे में बता सकता है. आने वाले समय में और एट्रिब्यूट जोड़े जा सकते हैं.

Enums
THREAT_ATTRIBUTE_UNSPECIFIED अज्ञात विशेषता. अगर सर्वर इसे दिखाता है, तो क्लाइंट FullHashDetail को पूरी तरह से अनदेखा कर देगा.
CANARY इससे पता चलता है कि खतरे के टाइप का इस्तेमाल, नीति उल्लंघन ठीक करने के तरीके (एनफ़ोर्समेंट) के लिए नहीं किया जाना चाहिए.
FRAME_ONLY इससे पता चलता है कि खतरे के टाइप का इस्तेमाल, सिर्फ़ फ़्रेम पर नीति उल्लंघन ठीक करने के तरीके (एनफ़ोर्समेंट) के लिए किया जाना चाहिए.