- طلب HTTP
- نص الطلب
- نص الاستجابة
- ListUpdateRequest
- القيود
- CompressionType
- ListUpdateResponse:
- ResponseType
- ThreatEntrySet
- RawHashes
- RawIndices
- RiceDeltaEncoding
- المجموع الاختباري
يجلب آخر تعديلات قائمة التهديدات. يمكن للعميل طلب تحديثات لقوائم متعددة في آنٍ واحد.
طلب HTTP
POST https://safebrowsing.googleapis.com/v4/threatListUpdates:fetch
يستخدم عنوان URL بنية تحويل الترميز gRPC.
نص الطلب
يحتوي نص الطلب على بيانات بالبنية التالية:
تمثيل JSON |
---|
{ "client": { object ( |
الحقول | |
---|---|
client |
البيانات الوصفية للعميل |
listUpdateRequests[] |
تم تعديل قائمة التهديدات المطلوبة. |
نص الاستجابة
إذا كانت الاستجابة ناجحة، سيحتوي نص الاستجابة على بيانات بالبنية التالية:
تمثيل JSON |
---|
{
"listUpdateResponses": [
{
object ( |
الحقول | |
---|---|
listUpdateResponses[] |
تعديلات القائمة التي طلبها العملاء. قد يكون عدد الردود هنا أقل من عدد الطلبات التي أرسلها العملاء. ويحدث ذلك، على سبيل المثال، إذا لم يحصل الخادم على أي تحديثات لقائمة معيّنة. |
minimumWaitDuration |
الحدّ الأدنى للمدة التي يجب أن ينتظرها العميل قبل إصدار أي طلب تعديل. في حال عدم ضبط هذا الحقل، يمكن أن يتم تعديل العملاء في حال أرادوا ذلك. مدة بالثواني يصل عددها إلى تسعة أرقام كسرية وتنتهي بـ " |
ListUpdateRequest
طلب تعديل قائمة واحدة
تمثيل JSON |
---|
{ "threatType": enum ( |
الحقول | |
---|---|
threatType |
تشير هذه السمة إلى نوع التهديد الذي تمثله الإدخالات المدرَجة في القائمة. |
platformType |
تشير هذه السمة إلى نوع المنصة المعرّضة للخطر من خلال الإدخالات المدرَجة في القائمة. |
threatEntryType |
تمثّل هذه السمة أنواع الإدخالات المتاحة في القائمة. |
state |
الحالة الحالية للعميل للقائمة المطلوبة (حالة العميل المشفرة التي تم تلقّيها من آخر تحديث ناجح للقائمة). سلسلة بترميز base64. |
constraints |
القيود المرتبطة بهذا الطلب. |
القيود
القيود المفروضة على هذا التعديل
تمثيل JSON |
---|
{
"maxUpdateEntries": integer,
"maxDatabaseEntries": integer,
"region": string,
"supportedCompressions": [
enum ( |
الحقول | |
---|---|
maxUpdateEntries |
الحد الأقصى للحجم في عدد الإدخالات. لن يتضمّن التعديل إدخالات أكثر من هذه القيمة. يجب أن تكون هذه الأُس تساوي 2 بين 2**10 و2**20. إذا كانت القيمة صفرًا، لن يتم ضبط حدّ أقصى لحجم التحديث. |
maxDatabaseEntries |
لضبط الحد الأقصى لعدد الإدخالات التي يرغب العميل في الحصول عليها في قاعدة البيانات المحلية للقائمة المحددة. يجب أن تكون هذه الأُس تساوي 2 بين 2**10 و2**20. إذا كانت القيمة صفرًا، لن يتم ضبط حدّ أقصى لحجم قاعدة البيانات. |
region |
يطلب القائمة لموقع جغرافي معين. وفي حال تم ترك السياسة بدون ضبط، قد يختار الخادم تلك القيمة استنادًا إلى عنوان IP للمستخدم. من المتوقع استخدام تنسيق ISO 3166-1 alpha-2. |
supportedCompressions[] |
أنواع الضغط المتوافقة مع البرنامج. |
language |
طلب القوائم للغة معينة. يُتوقع استخدام تنسيق ISO 639 alpha-2. |
deviceLocation |
الموقع الجغرافي الفعلي للعميل، ويتم التعبير عنه برمز المنطقة ISO 31166-1 alpha-2. |
CompressionType
الطرق التي يمكن من خلالها ضغط مجموعات إدخال التهديد.
عمليات التعداد | |
---|---|
COMPRESSION_TYPE_UNSPECIFIED |
غير معروف. |
RAW |
البيانات الأولية وغير المضغوطة. |
RICE |
بيانات مرمّزة من نوع Rice-Golomb |
ListUpdateResponse
تعديل على قائمة فردية
تمثيل JSON |
---|
{ "threatType": enum ( |
الحقول | |
---|---|
threatType |
نوع التهديد الذي يتم عرض البيانات له. |
threatEntryType |
تنسيق التهديدات |
platformType |
نوع النظام الأساسي الذي يتم إرجاع البيانات له. |
responseType |
نوع الردّ وقد يشير ذلك إلى أنّ العميل سيطلب اتخاذ إجراء عند تلقّي الردّ. |
additions[] |
مجموعة من الإدخالات لإضافتها إلى قائمة نوع تهديد محلي. يتم تكرار هذه الطريقة للسماح بإرسال مجموعة من البيانات المضغوطة والبيانات الأولية في ردّ واحد. |
removals[] |
يشير ذلك المصطلح إلى مجموعة من الإدخالات المطلوب إزالتها من قائمة نوع تهديد محلي. من الناحية العملية، يكون هذا الحقل فارغًا أو يحتوي على ThreatEntrySet واحد فقط. |
newClientState |
حالة العميل الجديدة، بتنسيق مشفّر. عدم شفافية للعملاء. سلسلة بترميز base64. |
checksum |
تجزئة SHA256 المتوقعة لحالة العميل، أي من القائمة المرتبة لجميع التجزئات الموجودة في قاعدة البيانات بعد تطبيق التحديث المقدم. إذا لم تتطابق حالة العميل مع الحالة المتوقَّعة، على العميل تجاهل هذا التعديل وإعادة المحاولة لاحقًا. |
ResponseType
نوع الردّ المُرسَل إلى العميل
عمليات التعداد | |
---|---|
RESPONSE_TYPE_UNSPECIFIED |
غير معروف. |
PARTIAL_UPDATE |
ويتم تطبيق التحديثات الجزئية على قاعدة البيانات المحلية الحالية للعميل. |
FULL_UPDATE |
تحل التحديثات الكاملة محل قاعدة البيانات المحلية بالكامل للعميل. وهذا يعني أنّ العميل كان قديمًا أو يعتقد أنّه تالف. |
ThreatEntrySet
يشير ذلك المصطلح إلى مجموعة من التهديدات يجب إضافتها أو إزالتها من قاعدة البيانات المحلية للعميل.
تمثيل JSON |
---|
{ "compressionType": enum ( |
الحقول | |
---|---|
compressionType |
نوع الضغط للإدخالات في هذه المجموعة. |
rawHashes |
تمثّل هذه السمة الإدخالات الأولية بتنسيق SHA256. |
rawIndices |
مؤشرات الإزالة الأولية لقائمة محلية. |
riceHashes |
البادئات الـ 4 بايت المشفرة للإدخالات بتنسيق SHA256، باستخدام ترميز Golomb-Rice. يتم تحويل التجزئات إلى uint32، ويتم فرزها بترتيب تصاعدي، ثم تشفير دلتا وتخزينها كبيانات مرمّزة. |
riceIndices |
فهارس قوائم محلية مرمّزة تم ترتيبها بشكل لغوي، وذلك باستخدام ترميز Golomb-Rice يتم استخدام البيانات لإرسال فهارس إزالة مضغوطة. يتم فرز فهارس الإزالة (uint32) بترتيب تصاعدي، ثم تشفير دلتا وتخزينها كبيانات مشفرة. |
RawHashes
إدخالات التهديد غير المضغوطة بتنسيق تجزئة بطول بادئة معيّنة. يمكن أن يتراوح حجم علامات التجزئة بين 4 و32 بايت. وتبلغ معظم علامات التجزئة 4 بايت، ولكن تطول بعض علامات التجزئة إذا اصطدمت بتجزئة عنوان URL شائع.
يُستخدم لإرسال ThreatEntrySet إلى برامج لا تتيح الضغط، أو عند إرسال تجزئات غير 4 بايت إلى البرامج التي تعتمد الضغط.
تمثيل JSON |
---|
{ "prefixSize": integer, "rawHashes": string } |
الحقول | |
---|---|
prefixSize |
عدد وحدات البايت لكل بادئة تم ترميزها أدناه. يمكن أن يتراوح هذا الحقل بين 4 (أقصر بادئة) و32 (تجزئة SHA256 كاملة). |
rawHashes |
يتم دمج علامات التجزئة في تنسيق ثنائي في سلسلة واحدة طويلة. يتم فرز التجزئات بترتيب قاموسي. وبالنسبة إلى مستخدمي JSON API، تكون قيم التجزئة بترميز base64. سلسلة بترميز base64. |
RawIndices
مجموعة من الفهارس الأولية لإزالتها من قائمة محلية
تمثيل JSON |
---|
{ "indices": [ integer ] } |
الحقول | |
---|---|
indices[] |
الفهارس المطلوب إزالتها من قائمة محلية تم ترتيبها بشكل لغوي |
RiceDeltaEncoding
بيانات Rice-Golomb المشفَّرة. يُستخدم لإرسال علامات تجزئة مضغوطة بحجم 4 بايت أو فهارس إزالة مضغوطة.
تمثيل JSON |
---|
{ "firstValue": string, "riceParameter": integer, "numEntries": integer, "encodedData": string } |
الحقول | |
---|---|
firstValue |
إزاحة الإدخال الأول في البيانات المُشفرة، أو قيمة هذا العدد الصحيح الفردي، إذا تم تشفير عدد صحيح واحد فقط. وإذا كان الحقل فارغًا أو مفقودًا، لنفترض أنّ القيمة صفر. |
riceParameter |
مَعلمة Golomb-Rice، وهي رقم يتراوح بين 2 و28. هذا الحقل غير متوفّر (أي صفر) إذا كانت قيمة |
numEntries |
عدد الإدخالات التي تم ترميزها دلتا في البيانات المشفرة. إذا تم ترميز عدد صحيح واحد فقط، سيكون هذا العدد صفرًا وسيتم تخزين القيمة المفردة في |
encodedData |
يشير ذلك المصطلح إلى مجموعات الدلتا المشفرة التي تم ترميزها باستخدام برنامج ترميز Golomb-Rice. سلسلة بترميز base64. |
المجموع الاختباري
الحالة المتوقعة لقاعدة البيانات المحلية للعميل.
تمثيل JSON |
---|
{ "sha256": string } |
الحقول | |
---|---|
sha256 |
تجزئة SHA256 لحالة العميل؛ أي من القائمة المصنفة لجميع التجزئات الموجودة في قاعدة البيانات. سلسلة بترميز base64. |