Method: threatListUpdates.fetch

لجلب آخر تحديثات قائمة التهديدات. يمكن للعميل طلب إجراء تعديلات لقوائم متعددة في الوقت نفسه.

طلب HTTP

POST https://safebrowsing.googleapis.com/v4/threatListUpdates:fetch

يستخدم عنوان URL بنية تحويل ترميز gRPC.

نص الطلب

يحتوي نص الطلب على بيانات بالبنية التالية:

تمثيل JSON
{
  "client": {
    object (ClientInfo)
  },
  "listUpdateRequests": [
    {
      object (ListUpdateRequest)
    }
  ]
}
الحقول
client

object (ClientInfo)

البيانات الوصفية للعميل

listUpdateRequests[]

object (ListUpdateRequest)

يتم تعديل قائمة التهديدات المطلوبة.

نص الاستجابة

إذا كانت الاستجابة ناجحة، سيحتوي نص الاستجابة على بيانات بالبنية التالية:

تمثيل JSON
{
  "listUpdateResponses": [
    {
      object (ListUpdateResponse)
    }
  ],
  "minimumWaitDuration": string
}
الحقول
listUpdateResponses[]

object (ListUpdateResponse)

تحديثات القائمة التي طلبها العملاء. قد يكون عدد الردود هنا أقل من عدد الطلبات التي يرسلها العملاء. في هذه الحالة، على سبيل المثال، إذا لم يكن لدى الخادم أي تحديثات لقائمة معينة.

minimumWaitDuration

string (Duration format)

الحد الأدنى للمدة التي يجب أن ينتظرها العميل قبل إصدار أي طلب تحديث. إذا لم يتم ضبط هذا الحقل، قد يتم تعديل البرامج في أقرب وقت ممكن.

عبارة عن مدة بالثواني تحتوي على ما يصل إلى تسعة أرقام كسرية، ويتم إنهاؤها بـ "s". مثال: "3.5s".

طلب تحديث القائمة

طلب تحديث قائمة واحدة.

تمثيل JSON
{
  "threatType": enum (ThreatType),
  "platformType": enum (PlatformType),
  "threatEntryType": enum (ThreatEntryType),
  "state": string,
  "constraints": {
    object (Constraints)
  }
}
الحقول
threatType

enum (ThreatType)

نوع التهديد الذي تشكّله الإدخالات الموجودة في القائمة.

platformType

enum (PlatformType)

نوع النظام الأساسي المعرض للخطر حسب الإدخالات الموجودة في القائمة.

threatEntryType

enum (ThreatEntryType)

أنواع الإدخالات الموجودة في القائمة.

state

string (bytes format)

الحالة الحالية للعميل للقائمة المطلوبة (حالة العميل المشفرة التي تم استلامها من آخر تحديث ناجح للقائمة).

سلسلة بترميز base64.

constraints

object (Constraints)

القيود المرتبطة بهذا الطلب.

القيود

القيود المفروضة على هذا التحديث.

تمثيل JSON
{
  "maxUpdateEntries": integer,
  "maxDatabaseEntries": integer,
  "region": string,
  "supportedCompressions": [
    enum (CompressionType)
  ],
  "language": string,
  "deviceLocation": string
}
الحقول
maxUpdateEntries

integer

الحد الأقصى لعدد الإدخالات. لن يحتوي التحديث على إدخالات أكثر من هذه القيمة. يجب أن تكون قيمة هذه المعادلة قيمتها 2 بين 2**10 و2**20. إذا كان صفرًا، فلن يتم تعيين حد حجم التحديث.

maxDatabaseEntries

integer

لتعيين الحد الأقصى لعدد الإدخالات التي يريد العميل امتلاكها في قاعدة البيانات المحلية للقائمة المحددة. يجب أن تكون قيمة هذه المعادلة قيمتها 2 بين 2**10 و2**20. إذا كان صفرًا، فلن يتم تعيين حد لحجم قاعدة البيانات.

region

string

طلب القائمة لموقع جغرافي محدد. وفي حال ترك السياسة بدون ضبط، قد يختار الخادم تلك القيمة استنادًا إلى عنوان IP للمستخدم. ويتوقع تنسيق ISO 3166-1 alpha-2.

supportedCompressions[]

enum (CompressionType)

أنواع الضغط المتوافقة مع البرنامج.

language

string

لطلب القوائم للغة معينة. توقّع الحصول على تنسيق ISO 639 alpha-2.

deviceLocation

string

تمثل هذه الخاصية الموقع الجغرافي الفعلي للعميل، ويتم التعبير عنه برمز المنطقة ISO 31166-1 alpha-2.

نوع الضغط

يمكن ضغط الطرق التي يتم فيها ضغط مجموعات التهديد.

عمليات التعداد
COMPRESSION_TYPE_UNSPECIFIED غير معروف.
RAW البيانات الأولية وغير المضغوطة.
RICE البيانات المشفرة بالأرز-الغولب.

ListUpdateResponse

تعديل على قائمة فردية

تمثيل JSON
{
  "threatType": enum (ThreatType),
  "threatEntryType": enum (ThreatEntryType),
  "platformType": enum (PlatformType),
  "responseType": enum (ResponseType),
  "additions": [
    {
      object (ThreatEntrySet)
    }
  ],
  "removals": [
    {
      object (ThreatEntrySet)
    }
  ],
  "newClientState": string,
  "checksum": {
    object (Checksum)
  }
}
الحقول
threatType

enum (ThreatType)

نوع التهديد الذي يتم عرض البيانات المتعلقة به.

threatEntryType

enum (ThreatEntryType)

شكل التهديدات.

platformType

enum (PlatformType)

نوع النظام الأساسي الذي يتم عرض البيانات له.

responseType

enum (ResponseType)

نوع الرد. قد يشير هذا إلى أنه يجب على العميل اتخاذ إجراء عند تلقي الاستجابة.

additions[]

object (ThreatEntrySet)

مجموعة من الإدخالات لإضافتها إلى قائمة نوع التهديد المحلي. ويتم تكرار هذه الخطوات للسماح بتجميع مجموعة من البيانات المضغوطة والبيانات الأولية في استجابة واحدة.

removals[]

object (ThreatEntrySet)

مجموعة من الإدخالات لإزالتها من قائمة نوع التهديد المحلي. من الناحية العملية، هذا الحقل فارغ أو يحتوي على مجموعة تهديدات واحدة فقط.

newClientState

string (bytes format)

الحالة الجديدة للعميل، وتكون بتنسيق مشفّر. غير شفاف للعملاء.

سلسلة بترميز base64.

checksum

object (Checksum)

تجزئة SHA256 المتوقعة لحالة العميل، أي من القائمة المُرتّبة لجميع علامات التجزئة المتوفّرة في قاعدة البيانات بعد تطبيق التحديث المقدَّم. إذا لم تتطابق حالة العميل مع الحالة المتوقعة، على العميل تجاهل هذا التعديل وإعادة المحاولة لاحقًا.

نوع الاستجابة

نوع الرد الذي تم إرساله إلى العميل.

عمليات التعداد
RESPONSE_TYPE_UNSPECIFIED غير معروف.
PARTIAL_UPDATE يتم تطبيق التحديثات الجزئية على قاعدة البيانات المحلية الموجودة لدى العميل.
FULL_UPDATE تحل التحديثات الكاملة محل قاعدة بيانات العميل المحلية بالكامل. وهذا يعني أن العميل كان قديمًا للغاية أو أن العميل يُعتقد أنه تالف.

مجموعة إعدادات التهديد

مجموعة من التهديدات التي يجب إضافتها أو إزالتها من قاعدة البيانات المحلية للعميل.

تمثيل JSON
{
  "compressionType": enum (CompressionType),
  "rawHashes": {
    object (RawHashes)
  },
  "rawIndices": {
    object (RawIndices)
  },
  "riceHashes": {
    object (RiceDeltaEncoding)
  },
  "riceIndices": {
    object (RiceDeltaEncoding)
  }
}
الحقول
compressionType

enum (CompressionType)

نوع الضغط للإدخالات في هذه المجموعة.

rawHashes

object (RawHashes)

الإدخالات الأولية بتنسيق SHA256.

rawIndices

object (RawIndices)

مؤشرات الإزالة الأولية لقائمة محلية.

riceHashes

object (RiceDeltaEncoding)

البادئات المشفرة 4 بايت من الإدخالات بتنسيق SHA256، باستخدام تشفير Golomb-Rice يتم تحويل التجزئات إلى uint32، وترتيبها تصاعديًا، ثم ترميز دلتا وتخزينها بترميز DataData.

riceIndices

object (RiceDeltaEncoding)

فهارس القوائم المحلية المرمزة والمعنونة، وذلك باستخدام ترميز Golomb-Rice يُستخدم لإرسال فهارس الإزالة المضغوطة. يتم ترتيب مؤشرات الإزالة (uint32) بترتيب تصاعدي، ثم يتم ترميز دلتا وتخزينها بترميز DataData.

علامات التجزئة الأولية

إدخالات التهديد غير المضغوطة بتنسيق تجزئة بطول بادئة معينة. يمكن أن يتراوح حجم وحدات التجزئة بين 4 و32 بايت. وتبلغ الغالبية العظمى منها 4 بايت، ولكن يتم إطالة بعض التجزئات إذا كانت تتزامن مع تجزئة عنوان URL شائع.

يتم استخدامه لإرسال ThreatEntrySet إلى البرامج التي لا توفِّر إمكانية الضغط، أو عند إرسال تجزئات غير بحجم 4 بايت إلى البرامج التي تتيح الضغط.

تمثيل JSON
{
  "prefixSize": integer,
  "rawHashes": string
}
الحقول
prefixSize

integer

عدد وحدات البايت لكل بادئة مشفرة أدناه. يمكن أن يتراوح هذا الحقل بين 4 (أقصر بادئة) و32 (تجزئة SHA256 كاملة).

rawHashes

string (bytes format)

علامات التجزئة، بتنسيق ثنائي، مجمّعة في سلسلة واحدة طويلة. يتم ترتيب علامات التجزئة حسب الترتيب الأبجدي. بالنسبة إلى مستخدمي واجهة برمجة تطبيقات JSON، يتم تجزئة الترميز باستخدام base64.

سلسلة بترميز base64.

مؤشرات أولية

مجموعة من الفهارس الأولية المطلوب إزالتها من قائمة محلية.

تمثيل JSON
{
  "indices": [
    integer
  ]
}
الحقول
indices[]

integer

الفهارس المطلوب إزالتها من قائمة محلية تمّ ترتيبها حسب المعجم.

ترميز RiceDeltaEncoding

البيانات المشفرة بالأرز-الجول. يُستخدم هذا الإعداد لإرسال تجزئات مضغوطة بحجم 4 بايت أو فهارس إزالة مضغوطة.

تمثيل JSON
{
  "firstValue": string,
  "riceParameter": integer,
  "numEntries": integer,
  "encodedData": string
}
الحقول
firstValue

string (int64 format)

الإزاحة للإدخال الأول في البيانات المشفرة، أو، إذا تم ترميز عدد صحيح واحد فقط، فإن قيمة هذا العدد الصحيح الفردي. إذا كان الحقل فارغًا أو مفقودًا، فافترض أنه صفر.

riceParameter

integer

معلمة Golomb-Rice، وهي رقم بين 2 و28. هذا الحقل مفقود (أي صفر) إذا كان numEntries صفرًا.

numEntries

integer

عدد الإدخالات التي تم ترميزها دلتا في البيانات المشفرة. إذا تم ترميز عدد صحيح واحد فقط، سيكون هذا صفرًا وسيتم تخزين القيمة المفردة في firstValue.

encodedData

string (bytes format)

الدلتا المشفرة بالترميز باستخدام برنامج ترميز Golomb-Rice

سلسلة بترميز base64.

المجموع الاختباري

الحالة المتوقعة لقاعدة البيانات المحلية للعميل.

تمثيل JSON
{
  "sha256": string
}
الحقول
sha256

string (bytes format)

تجزئة SHA256 لحالة العميل، أي من القائمة المصنّفة لجميع علامات التجزئة المتوفّرة في قاعدة البيانات.

سلسلة بترميز base64.