Package google.security.safebrowsing.v5alpha1

इंडेक्स

SafeBrowsing

Safe Browsing API की मदद से क्लाइंट, वेब रिसोर्स (आम तौर पर यूआरएल) की जांच कर सकते हैं. वे यह जांच कर सकते हैं कि ये रिसोर्स, असुरक्षित वेब रिसोर्स की लगातार अपडेट होने वाली Google की सूचियों के मुताबिक ठीक हैं या नहीं.

BatchGetHashLists

rpc BatchGetHashLists(BatchGetHashListsRequest) returns (BatchGetHashListsResponse)

एक साथ कई हैश सूचियां पाएं.

ऐसा अक्सर होता है, जब किसी क्लाइंट को कई हैश की गई सूचियों की ज़रूरत होती है. इस तरीके का इस्तेमाल, सामान्य Get तरीके को कई बार इस्तेमाल करने के बजाय बेहतर है.

यह https://google.aip.dev/231 में बताए गए स्टैंडर्ड बैच Get तरीके के मुताबिक है. साथ ही, एचटीटीपी तरीका भी GET है.

GetHashList

rpc GetHashList(GetHashListRequest) returns (HashList)

हैश की गई सूची का नया कॉन्टेंट पाएं. हैश सूची, खतरे वाली सूची या खतरे से जुड़ी नहीं होने वाली सूची हो सकती है. जैसे, ग्लोबल कैश.

यह https://google.aip.dev/131 में बताए गए स्टैंडर्ड Get तरीके का इस्तेमाल करता है. साथ ही, एचटीटीपी तरीका भी GET है.

ListHashLists

rpc ListHashLists(ListHashListsRequest) returns (ListHashListsResponse)

हैश की सूचियां दिखाएं.

V5 API में, Google ऐसी हैश सूची को कभी नहीं हटाएगा जिसे इस तरीके से कभी भी वापस नहीं लाया जा सकता. इससे क्लाइंट, इस तरीके का इस्तेमाल किए बिना, अपनी ज़रूरत की सभी हैश की गई सूचियों को सीधे तौर पर कोड कर सकते हैं.

यह https://google.aip.dev/132 में बताए गए तरीके के मुताबिक, एक स्टैंडर्ड लिस्ट मेथड है. साथ ही, एचटीटीपी मेथड GET है.

SearchHashes

rpc SearchHashes(SearchHashesRequest) returns (SearchHashesResponse)

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

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

SearchUrls

rpc SearchUrls(SearchUrlsRequest) returns (SearchUrlsResponse)

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

BatchGetHashListsRequest

एक ही समय में कई हैश सूचियां पाने का अनुरोध.

फ़ील्ड
names[]

string

ज़रूरी है. खास हैश सूचियों के नाम. यह सूची, थ्रेट लिस्ट या ग्लोबल कैश हो सकती है. नामों में डुप्लीकेट शामिल नहीं होने चाहिए. ऐसा होने पर, क्लाइंट को गड़बड़ी का मैसेज मिलेगा.

version[]

bytes

हैश की गई सूची के वे वर्शन जो क्लाइंट के पास पहले से मौजूद हैं. अगर क्लाइंट पहली बार हैश की गई सूचियां फ़ेच कर रहा है, तो इस फ़ील्ड को खाली छोड़ दिया जाना चाहिए. अगर ऐसा नहीं है, तो क्लाइंट को सर्वर से पहले मिले वर्शन देने चाहिए. क्लाइंट को उन बाइट में बदलाव नहीं करना चाहिए.

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

पुरानी जानकारी: एपीआई के V4 में, इसे states कहा जाता था. अब इसे version नाम दिया गया है, ताकि इसे आसानी से समझा जा सके.

size_constraints

SizeConstraints

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

BatchGetHashListsResponse

जवाब में एक से ज़्यादा हैश सूचियां मौजूद हैं.

फ़ील्ड
hash_lists[]

HashList

हैश की गई वैल्यू की सूची, अनुरोध में दिए गए क्रम में होती है.

FullHash

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

फ़ील्ड
full_hash

bytes

मिलता-जुलता पूरा हैश. यह SHA256 हैश है. इसकी लंबाई ठीक 32 बाइट होगी.

full_hash_details[]

FullHashDetail

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

FullHashDetail

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

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

फ़ील्ड
threat_type

ThreatType

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

attributes[]

ThreatAttribute

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

GetHashListRequest

हैश की सूची पाने का अनुरोध. यह सूची, खतरे वाली सूची या खतरे से जुड़ी नहीं होने वाली सूची हो सकती है. जैसे, ग्लोबल कैश.

V5 में नया क्या है: V4 में जिसे states कहा जाता था उसे अब version कहा जाएगा. अब सूचियों को नाम दिया गया है. साथ ही, प्लैटफ़ॉर्म टाइप और थ्रेट एंट्री टाइप हटा दिए गए हैं. अब ऐसा हो सकता है कि एक से ज़्यादा सूचियों में एक ही तरह का खतरा हो या एक ही सूची में कई तरह के खतरे हों. V4 में वैरिएबल लेंथ वाले हैश प्रीफ़िक्स होते हैं. इससे कई क्लाइंट को लागू करने में समस्या आती है. हालांकि, अब सूची में मौजूद सभी हैश की लंबाई एक जैसी होती है. इससे क्लाइंट को लागू करने में आसानी होती है. शर्तों को आसान बना दिया गया है. साथ ही, कंप्रेस करने का टाइप हटा दिया गया है. कंप्रेस करने की सुविधा हमेशा लागू रहती है.

फ़ील्ड
name

string

ज़रूरी है. इस हैश की गई सूची का नाम. यह थ्रेट लिस्ट या ग्लोबल कैश हो सकता है.

version

bytes

हैश की गई सूची का वह वर्शन जो क्लाइंट के पास पहले से मौजूद है. अगर क्लाइंट पहली बार हैश की गई सूची को फ़ेच कर रहा है, तो इस फ़ील्ड को खाली छोड़ना ज़रूरी है. अगर ऐसा नहीं है, तो क्लाइंट को सर्वर से मिला पिछला वर्शन देना चाहिए. क्लाइंट को उन बाइट में बदलाव नहीं करना चाहिए.

V5 में नया क्या है: एपीआई के V4 में, इसे states कहा जाता था. अब इसे version के तौर पर रीनेम कर दिया गया है, ताकि इसे आसानी से समझा जा सके.

size_constraints

SizeConstraints

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

HashList

नाम से पहचाने गए हैश की सूची.

फ़ील्ड
name

string

हैश की गई सूची का नाम. ध्यान दें कि ग्लोबल कैश भी सिर्फ़ एक हैश सूची है. इसे यहां देखा जा सकता है.

version

bytes

हैश की गई सूची का वर्शन. क्लाइंट को उन बाइट में बदलाव नहीं करना चाहिए.

partial_update

bool

सही होने पर, यह एक आंशिक अंतर होता है. इसमें क्लाइंट के पास पहले से मौजूद डेटा के आधार पर, जोड़े गए और हटाए गए डेटा की जानकारी होती है. जब यह वैल्यू गलत होती है, तब यह पूरी हैश सूची होती है.

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

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

compressed_removals

RiceDeltaEncoded32Bit

हटाए गए इंडेक्स का राइस-डेल्टा एन्कोड किया गया वर्शन. हर हैश लिस्ट में 2^32 से कम एंट्री होती हैं. इसलिए, इंडेक्स को 32-बिट पूर्णांक के तौर पर माना जाता है और उन्हें कोड में बदला जाता है.

minimum_wait_duration

Duration

क्लाइंट को हैश की गई सूची फिर से पाने के लिए, कम से कम इतने समय तक इंतज़ार करना चाहिए. अगर इसे शामिल नहीं किया जाता है या इसकी वैल्यू शून्य होती है, तो क्लाइंट को तुरंत फ़ेच करना चाहिए. ऐसा इसलिए, क्योंकि इससे पता चलता है कि सर्वर को क्लाइंट को एक और अपडेट भेजना है, लेकिन क्लाइंट की तय की गई शर्तों की वजह से ऐसा नहीं हो सका.

sha256_checksum

bytes

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

metadata

HashListMetadata

हैश की गई सूची के बारे में मेटाडेटा. GetHashList तरीके से यह जानकारी अपने-आप नहीं भरती है, लेकिन ListHashLists तरीके से यह जानकारी अपने-आप भर जाती है.

यूनियन फ़ील्ड compressed_additions. यह वैल्यू, जोड़े गए डेटा का राइस-डेल्टा एन्कोड किया गया वर्शन होती है. सूची में जोड़े गए सभी आइटम के हैश प्रीफ़िक्स की लंबाई एक जैसी होती है. compressed_additions इनमें से सिर्फ़ एक हो सकता है:
additions_four_bytes

RiceDeltaEncoded32Bit

चार बाइट वाले जोड़े गए वर्ण.

additions_eight_bytes

RiceDeltaEncoded64Bit

आठ बाइट के जोड़े गए हिस्से.

additions_sixteen_bytes

RiceDeltaEncoded128Bit

16 बाइट के अतिरिक्त डेटा.

additions_thirty_two_bytes

RiceDeltaEncoded256Bit

32 बाइट के डेटा को जोड़ा गया.

HashListMetadata

किसी हैश सूची के बारे में मेटाडेटा.

फ़ील्ड
threat_types[]

ThreatType

बिना क्रम वाली सूची. अगर यह खाली नहीं है, तो इसका मतलब है कि हैश की सूची, खतरे की सूची है. साथ ही, इससे यह पता चलता है कि इस हैश की सूची में, हैश या हैश प्रीफ़िक्स से जुड़े किस तरह के खतरे शामिल हैं. अगर एंट्री से किसी तरह के खतरे का पता नहीं चलता है, तो यह फ़ील्ड खाली हो सकता है. जैसे, अगर एंट्री से किसी सुरक्षित टाइप का पता चलता है.

likely_safe_types[]

LikelySafeType

बिना क्रम वाली सूची. अगर यह खाली नहीं है, तो इसका मतलब है कि हैश की सूची, सुरक्षित हैश की सूची को दिखाती है. साथ ही, इसमें यह बताया जाता है कि उन्हें सुरक्षित क्यों माना जाता है. यह फ़ील्ड, threat_types फ़ील्ड के साथ काम नहीं करता.

description

string

इस सूची के बारे में ऐसी जानकारी जिसे कोई भी व्यक्ति आसानी से पढ़ सकता है. अंग्रेज़ी में लिखा गया हो.

hash_length

HashLength

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

HashLength

हैश की सूची में हैश की लंबाई.

Enums
HASH_LENGTH_UNSPECIFIED लंबाई तय नहीं की गई है.
FOUR_BYTES हर हैश, चार बाइट का प्रीफ़िक्स होता है.
EIGHT_BYTES हर हैश, आठ बाइट का प्रीफ़िक्स होता है.
SIXTEEN_BYTES हर हैश, 16 बाइट का प्रीफ़िक्स होता है.
THIRTY_TWO_BYTES हर हैश, 32 बाइट का पूरा हैश होता है.

LikelySafeType

ऐसी साइटें जिनसे आपको नुकसान नहीं हो सकता.

ध्यान दें कि SearchHashesResponse में जान-बूझकर LikelySafeType को शामिल नहीं किया गया है.

Enums
LIKELY_SAFE_TYPE_UNSPECIFIED अज्ञात.
GENERAL_BROWSING यह साइट, सामान्य ब्राउज़िंग के लिए सुरक्षित हो सकती है. इसे ग्लोबल कैश मेमोरी भी कहा जाता है.
CSD यह साइट शायद इतनी सुरक्षित है कि इस पर क्लाइंट-साइड डिटेक्शन मॉडल या पासवर्ड की सुरक्षा की जांच करने की ज़रूरत नहीं है.
DOWNLOAD यह साइट शायद इतनी सुरक्षित है कि इस पर मौजूद फ़ाइलों को डाउनलोड करने से पहले उनकी जांच करने की ज़रूरत नहीं है.

ListHashListsRequest

उपलब्ध हैश सूचियों को दिखाने का अनुरोध.

फ़ील्ड
page_size

int32

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

page_token

string

यह पेज टोकन है, जो पिछले ListHashLists कॉल से मिला था. अगला पेज पाने के लिए, यह टोकन दें.

ListHashListsResponse

जवाब में हैश की गई सूचियों के बारे में मेटाडेटा शामिल होता है.

फ़ील्ड
hash_lists[]

HashList

हैश की सूचियां किसी भी क्रम में होती हैं. सिर्फ़ हैश की गई सूचियों का मेटाडेटा शामिल किया जाएगा, न कि कॉन्टेंट.

next_page_token

string

यह एक टोकन है. इसका इस्तेमाल अगले पेज को वापस पाने के लिए, page_token के तौर पर किया जा सकता है. अगर इस फ़ील्ड को खाली छोड़ा जाता है, तो इसके बाद कोई पेज नहीं होता.

RiceDeltaEncoded128Bit

यह RiceDeltaEncoded32Bit जैसा ही है. हालांकि, यह 128-बिट नंबरों को कोड में बदलता है.

फ़ील्ड
first_value_hi

uint64

कोड में बदले गए डेटा (हैश) में पहली एंट्री के ऊपरी 64 बिट. अगर फ़ील्ड खाली है, तो ऊपर के 64 बिट सभी शून्य होते हैं.

first_value_lo

fixed64

एन्कोड किए गए डेटा (हैश) में पहली एंट्री के निचले 64 बिट. अगर फ़ील्ड खाली है, तो निचले 64 बिट सभी शून्य होते हैं.

rice_parameter

int32

गोलॉम्ब-राइस पैरामीटर. इस पैरामीटर की वैल्यू, 99 से 126 के बीच होती है.

entries_count

int32

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

encoded_data

bytes

गोलोम्ब-राइस कोडर का इस्तेमाल करके कोड में बदले गए डेल्टा.

RiceDeltaEncoded256Bit

यह RiceDeltaEncoded32Bit की तरह ही काम करता है. हालांकि, यह 256-बिट नंबर को कोड में बदलता है.

फ़ील्ड
first_value_first_part

uint64

कोड किए गए डेटा (हैश) की पहली एंट्री के पहले 64 बिट. अगर फ़ील्ड खाली है, तो पहले 64 बिट सभी शून्य होते हैं.

first_value_second_part

fixed64

एन्कोड किए गए डेटा (हैश) की पहली एंट्री के 65 से 128 बिट. अगर फ़ील्ड खाली है, तो 65 से 128 तक के सभी बिट शून्य होते हैं.

first_value_third_part

fixed64

एन्कोड किए गए डेटा (हैश) की पहली एंट्री के 129 से 192 बिट. अगर फ़ील्ड खाली है, तो 129 से 192 तक के सभी बिट शून्य होते हैं.

first_value_fourth_part

fixed64

एन्कोड किए गए डेटा (हैश) में पहली एंट्री के आखिरी 64 बिट. अगर फ़ील्ड खाली है, तो आखिरी 64 बिट सभी शून्य होते हैं.

rice_parameter

int32

गोलॉम्ब-राइस पैरामीटर. इस पैरामीटर की वैल्यू 227 से 254 के बीच होती है. इसमें ये दोनों वैल्यू भी शामिल हैं.

entries_count

int32

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

encoded_data

bytes

गोलोम्ब-राइस कोडर का इस्तेमाल करके कोड में बदले गए डेल्टा.

RiceDeltaEncoded32Bit

राइस-गोलॉम्ब एन्कोड किया गया डेटा. इसका इस्तेमाल हैश या हटाने के इंडेक्स के लिए किया जाता है. इस बात की गारंटी है कि यहां मौजूद हर हैश या इंडेक्स की लंबाई एक जैसी होती है. साथ ही, यह लंबाई ठीक 32 बिट होती है.

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

पुरानी जानकारी: राइस-डेल्टा एन्कोडिंग का इस्तेमाल पहली बार इस एपीआई के V4 में किया गया था. V5 में, दो अहम सुधार किए गए हैं: पहला, राइस-डेल्टा एन्कोडिंग अब 4 बाइट से ज़्यादा लंबे हैश प्रीफ़िक्स के साथ उपलब्ध है; दूसरा, एन्कोड किए गए डेटा को अब बिग-एंडियन के तौर पर माना जाता है, ताकि सॉर्टिंग के महंगे चरण से बचा जा सके.

फ़ील्ड
first_value

uint32

कोड किए गए डेटा (हैश या इंडेक्स) में पहली एंट्री या अगर सिर्फ़ एक हैश प्रीफ़िक्स या इंडेक्स को कोड किया गया था, तो उस एंट्री की वैल्यू. अगर फ़ील्ड खाली है, तो एंट्री शून्य होती है.

rice_parameter

int32

यह Golomb-Rice पैरामीटर है. इस पैरामीटर की वैल्यू, 3 से 30 के बीच होनी चाहिए.

entries_count

int32

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

encoded_data

bytes

गोलोम्ब-राइस कोडर का इस्तेमाल करके कोड में बदले गए डेल्टा.

RiceDeltaEncoded64Bit

यह RiceDeltaEncoded32Bit जैसा ही है. हालांकि, यह 64-बिट नंबर को कोड में बदलता है.

फ़ील्ड
first_value

uint64

कोड किए गए डेटा (हैश) में पहली एंट्री या अगर सिर्फ़ एक हैश प्रीफ़िक्स को कोड किया गया था, तो उस एंट्री की वैल्यू. अगर फ़ील्ड खाली है, तो एंट्री शून्य होती है.

rice_parameter

int32

यह Golomb-Rice पैरामीटर है. इस पैरामीटर की वैल्यू 35 से 62 के बीच होती है.

entries_count

int32

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

encoded_data

bytes

गोलोम्ब-राइस कोडर का इस्तेमाल करके कोड में बदले गए डेल्टा.

SearchHashesRequest

यह एक ऐसा अनुरोध होता है जिसे क्लाइंट, खास हैश प्रीफ़िक्स खोजने के लिए करता है.

इसे सिर्फ़ थ्रेट लिस्ट को खोजने के लिए डिज़ाइन किया गया है. यह ग्लोबल कैश जैसी नॉन-थ्रेट लिस्ट को नहीं खोजता.

V5 में नया क्या है: क्लाइंट को अपने लोकल डेटाबेस में ClientInfo या हैश की गई सूचियों की स्थितियां बताने की ज़रूरत नहीं है. यह बेहतर निजता के लिए है. इसके अलावा, क्लाइंट को यह बताने की ज़रूरत नहीं है कि उन्हें किस तरह के खतरों में दिलचस्पी है.

फ़ील्ड
hash_prefixes[]

bytes

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

फ़िलहाल, हर हैश प्रीफ़िक्स की लंबाई ठीक चार बाइट होनी चाहिए. ऐसा हो सकता है कि आने वाले समय में, इसमें कुछ बदलाव किए जाएं.

filter

string

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

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

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

"threat_type in [ ThreatType.UNWANTED_SOFTWARE, ThreatType.MALWARE ]" फ़िल्टर के लिए, थ्रेट टाइप UNWANTED_SOFTWARE या MALWARE होना चाहिए.

SearchHashesResponse

खतरे के हैश खोजने के बाद मिला जवाब.

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

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

फ़ील्ड
full_hashes[]

FullHash

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

cache_duration

Duration

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

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

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

SearchUrlsRequest

यह एक ऐसा अनुरोध होता है जिसे क्लाइंट, दिए गए यूआरएल से मिलती-जुलती थ्रेट खोजने के लिए करता है.

इसे सिर्फ़ थ्रेट लिस्ट को खोजने के लिए डिज़ाइन किया गया है. यह ग्लोबल कैश जैसी नॉन-थ्रेट लिस्ट को नहीं खोजता.

फ़ील्ड
urls[]

string

ज़रूरी है. वे यूआरएल जिनकी जानकारी देखनी है. क्लाइंट को 50 से ज़्यादा यूआरएल नहीं भेजने चाहिए.

SearchUrlsResponse

यह जवाब, बताए गए यूआरएल से मिलती-जुलती थ्रेट खोजने के बाद मिलता है.

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

फ़ील्ड
threats[]

ThreatUrl

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

cache_duration

Duration

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

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

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

SizeConstraints

हैश की गई सूचियों के साइज़ पर पाबंदियां.

फ़ील्ड
max_update_entries

int32

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

max_database_entries

int32

इससे उन एंट्री की ज़्यादा से ज़्यादा संख्या सेट की जाती है जिन्हें क्लाइंट, सूची के लिए लोकल डेटाबेस में रखना चाहता है. (सर्वर, क्लाइंट को इससे कम संख्या में एंट्री सेव करने के लिए कह सकता है.) अगर इसे शामिल नहीं किया जाता है या इसकी वैल्यू शून्य होती है, तो डेटाबेस के साइज़ की कोई सीमा सेट नहीं की जाती है.

ThreatAttribute

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

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

ThreatType

खतरों के टाइप.

Enums
THREAT_TYPE_UNSPECIFIED खतरे के टाइप की जानकारी नहीं है. अगर सर्वर से यह वैल्यू मिलती है, तो क्लाइंट FullHashDetail को पूरी तरह से अनदेखा कर देगा.
MALWARE

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

इस बारे में ज़्यादा जानकारी यहां मिल सकती है.

SOCIAL_ENGINEERING

सोशल इंजीनियरिंग के ज़रिए होने वाले खतरे का टाइप. सोशल इंजीनियरिंग वाले पेज, तीसरे पक्ष की ओर से काम करने का झूठा दावा करते हैं. ऐसा इसलिए किया जाता है, ताकि दर्शकों को भ्रमित करके कोई ऐसी कार्रवाई कराई जा सके जिसे दर्शक सिर्फ़ तीसरे पक्ष के भरोसेमंद एजेंट के साथ करते हैं. फ़िशिंग, सोशल इंजीनियरिंग का एक तरीका है. इसमें व्यूअर को गुमराह करके, उससे लॉगिन क्रेडेंशियल जैसी जानकारी हासिल की जाती है.

इस बारे में ज़्यादा जानकारी यहां मिल सकती है.

UNWANTED_SOFTWARE अनचाहे सॉफ़्टवेयर से जुड़े खतरे का टाइप. अनचाहा सॉफ़्टवेयर ऐसा सॉफ़्टवेयर होता है जो सॉफ़्टवेयर के लिए बने Google के सिद्धांतों का पालन नहीं करता, लेकिन मैलवेयर नहीं होता.
POTENTIALLY_HARMFUL_APPLICATION नुकसान पहुंचाने की आशंका वाले ऐप्लिकेशन के खतरे का टाइप जैसा कि Google Play Protect, Play Store के लिए इस्तेमाल करता है.

ThreatUrl

ऐसा यूआरएल जो एक या उससे ज़्यादा खतरों से मेल खाता हो.

फ़ील्ड
url

string

अनुरोध किया गया वह यूआरएल जिससे एक या उससे ज़्यादा खतरों का पता चला है.

threat_types[]

ThreatType

बिना क्रम वाली सूची. यूआरएल को जिन खतरों के तौर पर कैटगरी में रखा गया है उनकी क्रम से नहीं लगाई गई सूची.