الميزات

وكيل المتصفح في Dvina

كيف يمكن لمالكي المواقع التعرّف على المتصفح الذي يستخدمه Dvina نيابةً عن المستخدمين، والتحقق منه، والسماح له بالوصول أو حظره.

عرض بصيغة Markdown

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

ما هو

Dvina مساعد شخصي. عندما يطلب شخص سجّل الدخول إلى Dvina مهمة تتطلب استخدام موقع، مثل مقارنة العروض أو تعبئة نموذج طلب تعبئته، يمكن لـ Dvina تنفيذها في متصفح خاص به على كمبيوتر Dvina الخاص بذلك الشخص. وهو متصفح Chromium لسطح المكتب له نافذة، وليس متصفحًا بلا واجهة، ويمكن للشخص مشاهدته مباشرةً وتولّي التحكم فيه في أي وقت.

  • يعمل نيابةً عن شخص واحد. كل متصفح يخص مستخدمًا واحدًا سجّل الدخول إلى Dvina، ويعمل على ما طلبه ذلك الشخص.
  • ليس برنامج زحف. لا توجد قائمة بمواقع يزورها من تلقاء نفسه. يفتح الصفحات التي تتطلبها المهمة، خطوةً بخطوة: يحمّل الصفحة، ويقرأها، ثم يتفاعل معها، كما يفعل الشخص.
  • لا يُستخدم مطلقًا لتدريب النماذج. ما يقرأه متصفح Dvina على موقعك يُستخدم فقط لتنفيذ طلب الشخص الذي يعمل نيابةً عنه. ولا يُستخدم مطلقًا لتدريب أي نموذج ذكاء اصطناعي.
  • يترك للشخص قراراته الخاصة. لا يُدخل كلمات المرور أو بيانات البطاقات. عندما تتطلب الصفحة من الشخص تسجيل الدخول أو الدفع، يتوقف Dvina ويطلب منه تولّي التحكم. وينتظر موافقة الشخص قبل إدخال البيانات الشخصية أو الإرسال أو الدفع أو الحذف.
  • لا يجتاز اختبارات التحقق من أن المستخدم إنسان. عندما يواجه اختبارًا للتحقق من أن من يتصفح إنسان، مثل اختبار Cloudflare أو Turnstile أو reCAPTCHA أو hCaptcha، لا ينقر عليه ولا يحلّه ولا يعيد تحميله. إذا كان الاختبار يكتمل تلقائيًا، ينتظر Dvina حتى يكتمل. وإذا ظل قائمًا، يتوقف العمل، ويتولّى الشخص التحكم في المتصفح، ويجتاز الاختبار، ثم يعيد التحكم إلى Dvina.

تعرّف على طلباته

يوقّع متصفح Dvina كل طلب http وhttps يرسله باستخدام Web Bot Auth، أي توقيعات رسائل HTTP (RFC 9421) بمفتاح Ed25519. يتضمن كل طلب ثلاث ترويسات:

Signature-Agent: "https://api.dvina.ai"
Signature-Input: sig1=("@authority" "signature-agent");created=<unix time>;expires=<created + 60>;keyid="<key id>";alg="ed25519";nonce="<random>";tag="web-bot-auth"
Signature: sig1=:<Ed25519 signature>:
  • يحدّد Signature-Agent هوية Dvina وعنوان الأصل الذي تُنشر فيه مفاتيحه.
  • يشمل Signature-Input قيمة @authority للطلب (اسم مضيف موقعك) وترويسة Signature-Agent. وقيمة tag هي web-bot-auth.
  • كل توقيع صالح لمدة 60 ثانية، من created إلى expires.
  • قيمة keyid هي بصمة JWK للمفتاح (RFC 7638).

يرسل المتصفح سلسلة وكيل المستخدم الخاصة بـ Chromium، وهي مماثلة لتلك التي يرسلها أي متصفح Chromium على Linux، مثل:

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Safari/537.36

يتغير إصدار Chrome فيه مع تحديثات Chromium، ولا تتضمن سلسلة وكيل المستخدم أي إشارة إلى Dvina. تعرّف على Dvina من توقيعه، لا من سلسلة وكيل المستخدم.

ملاحظة

يتيح تطبيق سطح المكتب للشخص أيضًا السماح لـ Dvina باستخدام متصفح على الكمبيوتر الخاص به. هذا المتصفح لا يوقّع طلباته، ويبدو كتصفح الشخص نفسه.

تحقّق من التوقيع

ينشر Dvina مفتاحه العام في دليل مفاتيحه:

https://api.dvina.ai/.well-known/http-message-signatures-directory

يردّ الدليل بترويسة Content-Type: application/http-message-signatures-directory+json ومجموعة مفاتيح JSON Web Key Set تتضمن مفتاح Ed25519 العام الخاص بـ Dvina. ويُوقَّع الرد بالمفتاح نفسه، مع tag="http-message-signatures-directory".

إذا كان موقعك يستخدم Cloudflare، فإن Cloudflare يتحقق من الوكلاء الذين يوقّعون طلباتهم نيابةً عنك. للتحقق من طلب بنفسك:

  1. تحقّق من أن قيمة Signature-Agent هي "https://api.dvina.ai" وأن Signature-Input يتضمن tag="web-bot-auth".
  2. تحقّق من أن الوقت الحالي يقع بين created وexpires.
  3. اجلب دليل المفاتيح واختر المفتاح الذي تطابق بصمة JWK الخاصة به قيمة keyid.
  4. أنشئ قاعدة التوقيع من @authority وsignature-agent ومعلمات التوقيع، كما يصف RFC 9421، وتحقّق من Signature باستخدام مفتاح Ed25519 ذاك.

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

اسمح له بالوصول أو احظره

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

  • سياسات روبوتات الذكاء الاصطناعي: في إعدادات الأمان، اختر تكوين سياسات روبوتات الذكاء الاصطناعي. ضمن الوكيل، اختر السماح (عدم الحظر) أو الحظر على الصفحات التي تحتوي على إعلانات أو الحظر (على جميع الصفحات).
  • قواعد WAF المخصصة: تُضبط قيمة cf.client.bot (أو cf.bot_management.verified_bot عند استخدام Bot Management) على true في الطلبات الواردة من الروبوتات التي تم التحقق منها والوكلاء ذوي التوقيعات. استخدم هذا الحقل في قاعدة مخصصة لتجاوز فحوصات هذه الطلبات أو إخضاعها لتحدٍّ أو حظرها.
  • دليل الروبوتات التي تم التحقق منها: اطّلع على الوكلاء الذين تتحقق منهم Cloudflare في Cloudflare Radar.

على أي منصة أخرى، تحقّق من التوقيع كما هو موضح أعلاه، ثم اسمح بالطلبات أو احظرها إذا كانت قيمة Signature-Agent التي تم التحقق منها هي "https://api.dvina.ai".

تواصل معنا

هل لديك أسئلة عن متصفح Dvina على موقعك، أو عن طلب لم يتصرف كما تصف هذه الصفحة؟ أرسل رسالة إلى support@dvina.ai تتضمن عنوان موقعك، ووقت الطلبات وقيمة keyid الخاصة بها إن كانت متوفرة لديك.