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".

ListUpdateRequest

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

تمثيل 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.

CompressionType

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

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

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)

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

newClientState

string (bytes format)

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

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

checksum

object (Checksum)

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

ResponseType

نوع الردّ المُرسَل إلى العميل

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

ThreatEntrySet

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

تمثيل 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، ويتم فرزها بترتيب تصاعدي، ثم تشفير دلتا وتخزينها كبيانات مرمّزة.

riceIndices

object (RiceDeltaEncoding)

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

RawHashes

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

يُستخدم لإرسال ThreatEntrySet إلى برامج لا تتيح الضغط، أو عند إرسال تجزئات غير 4 بايت إلى البرامج التي تعتمد الضغط.

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

integer

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

rawHashes

string (bytes format)

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

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

RawIndices

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

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

integer

الفهارس المطلوب إزالتها من قائمة محلية تم ترتيبها بشكل لغوي

RiceDeltaEncoding

بيانات Rice-Golomb المشفَّرة. يُستخدم لإرسال علامات تجزئة مضغوطة بحجم 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.