01 · ذكاء الأجهزة لمنع الاحتيال الرحلات التي تَسِمها

واجهة API لذكاء الأجهزة ومخاطر الاحتيال على الويب قيِّم كل وصول. قرِّر بالأدلة.

وسم واحد لكل شاشة تختارها

نص برمجي واحد على موقعك يقرأ المتصفح والجهاز في نحو عُشر ثانية على أجهزة سطح المكتب. واستدعاء واحد موقَّع من الخادم الخلفي لديك، مع وسم تسمّيه أنت، يعيد الإجابة فورًا: درجة ثقة، وتغطية الأدلة، و13 مؤشرًا، من البوتات والأتمتة وانتحال المتصفح والمحاكيات إلى VPN والبروكسي وTor، مع السبب وراء كل توصية. اكتشف الاستيلاء على الحساب والتسجيلات المزيّفة واحتيال السحب بالأدلة لا بالتخمين. نحن نوصي. وأنت تقرّر وتتصرّف.

استجابة متزامنة على أي شاشة تَسِمها · الوضع الظلي قبل أن تؤثر في أي قرار · قواعدك وقوائمك وقرارك

كيف تقرأ هذه الاستجابة · مثال v1.1/login_completed

  1. لماذا هذه التوصية

    ALLOWreason_codes · NO_ADVERSE_INDICATOR_MATCH

    لم يُكتشف أي مؤشر تأخذه السياسة في الحسبان. مثال من العقد: السياسة المُدارة من FingerTrackID توصي بـ MONITOR عند كل درجة؛ أما ALLOW فمصدرها نطاق درجات حدّدته شركتك في قواعد المخاطر الخاصة بها. صدر القرار وفق policy-login-v1.

  2. ما هي الدرجة، وما ليست هي

    trust_score 1000–100 · الأعلى أفضل

    الثقة في هذا الوصول وفق إصدار السياسة هذا، وليست احتمال احتيال. خارج COMPLETED تكون null، ولا تكون قيمة افتراضية أبدًا.

  3. كم أمكن رصده

    evidence_coverage 100limitation_codes · لا شيء

    نسبة الفحوص المتوقعة التي نُفِّذت. لو نقص دليل لذُكر اسمه هنا: فهو يخفض التغطية ولا يكون أبدًا سببًا للمخاطر.

  4. ثم القرار لك

    customer_actionثم النتيجة

    الخادم الخلفي لديك يقرّر ويتصرّف، ثم يُبلغ بما فعله وبالنتيجة الفعلية. نحن لا نحظر أبدًا ولا نحجز أموالًا.

POST /v1/assessments → 201

event-assessment.v1.1 · مثال من العقد

assessment_statusCompletedاكتمل التقييم
trust_score1000–100 · الأعلى أفضل
device_match_confidence0.980–1 · قوة المطابقة
evidence_coverage1000–100 · كفاية الأدلة
ALLOWrecommendation_basis · EVALUATIONتوصية، لا إجراء
reason_codes NO_ADVERSE_INDICATOR_MATCH  ·  limitation_codes none
{  "schema_version": "event-assessment.v1.1",  "tag": "login",  "assessment_status": "COMPLETED",  "trust_score": 100,  "device_match_confidence": 0.98,  "evidence_coverage": 100,  "signals": [ … 13 objects ],  "limitation_codes": [],  "reason_codes": ["NO_ADVERSE_INDICATOR_MATCH"],  "recommended_action": "ALLOW",  "recommendation_basis": "EVALUATION",  "policy_version": "policy-login-v1"  // … 21 more fields in the full response: ids, snapshot, versions, timestamps}
الاستجابة كاملة · 54 سطرًا · 13 إشارة، والإشارات غير المكتشفة مطويّة
1{2  "schema_version": "event-assessment.v1.1",3  "assessment_id": "01996f2a-0000-7000-8000-000000000101",4  "assessment_version": 1,5  "supersedes_assessment_id": null,6  "business_event_id": "01996f2a-0000-7000-8000-000000000102",7  "external_event_id": "login_20260904_000001",8  "tag": "login",9  "assessment_status": "COMPLETED",10  "retryable": false,11  "trust_score": 100,12  "device_intelligence_snapshot_id": "01996f2a-0000-7000-8000-000000000103",13  "device_intelligence_snapshot_version": 1,14  "device_id": "dev_0123456789abcdefghij",15  "device_match_confidence": 0.98,16  "evidence_coverage": 100,17  "data_freshness": {18    "evidence_cutoff_at": "2026-09-04T12:00:00Z",19    "oldest_required_observed_at": "2026-09-04T11:59:59Z",20    "maximum_required_age_ms": 300000,21    "all_required_fresh": true22  },23  "signals": [24    { "signal_code": "ANTI_FINGERPRINTING", "signal_state": "NOT_DETECTED", "source": "DERIVED", "detector_version": "detector-web-v1", … },25    { "signal_code": "BOT_AUTOMATION", "signal_state": "NOT_DETECTED", "source": "DERIVED", "detector_version": "detector-web-v1", … },26    { "signal_code": "BROWSER_SPOOFING", "signal_state": "NOT_DETECTED", "source": "DERIVED", "detector_version": "detector-web-v1", … },27    { "signal_code": "EMULATED_ENVIRONMENT", "signal_state": "NOT_DETECTED", "source": "DERIVED", "detector_version": "detector-web-v1", … },28    { "signal_code": "PRIVATE_BROWSING", "signal_state": "NOT_DETECTED", "source": "DERIVED", "detector_version": "detector-web-v1", … },29    { "signal_code": "BROWSER_PRIVACY_BRAVE", "signal_state": "NOT_DETECTED", "source": "DERIVED", "detector_version": "detector-web-v1", … },30    { "signal_code": "BROWSER_PRIVACY_SAFARI", "signal_state": "NOT_DETECTED", "source": "DERIVED", "detector_version": "detector-web-v1", … },31    { "signal_code": "BROWSER_PRIVACY_SAMSUNG_INTERNET", "signal_state": "NOT_DETECTED", "source": "DERIVED", "detector_version": "detector-web-v1", … },32    { "signal_code": "NETWORK_PROXY", "signal_state": "NOT_DETECTED", "source": "DERIVED", "detector_version": "detector-web-v1", … },33    { "signal_code": "NETWORK_VPN", "signal_state": "NOT_DETECTED", "source": "DERIVED", "detector_version": "detector-web-v1", … },34    { "signal_code": "NETWORK_HOSTING", "signal_state": "NOT_DETECTED", "source": "DERIVED", "detector_version": "detector-web-v1", … },35    { "signal_code": "NETWORK_TOR", "signal_state": "NOT_DETECTED", "source": "DERIVED", "detector_version": "detector-web-v1", … },36    { "signal_code": "DEVICE_MULTI_USER", "signal_state": "NOT_DETECTED", "source": "DERIVED", "detector_version": "detector-web-v1", … }37  ],38  "limitation_codes": [],39  "reason_codes": ["NO_ADVERSE_INDICATOR_MATCH"],40  "recommended_action": "ALLOW",41  "recommendation_basis": "EVALUATION",42  "policy_version": "policy-login-v1",43  "fallback_policy_version": "production-observation-fallback-v2",44  "ruleset_version": "ruleset-web-v1",45  "signal_catalog_version": "signals-web-v1",46  "feature_schema_version": "features-v1",47  "resolver_version": "resolver-v1",48  "sdk_version": "web-sdk-1.0.0",49  "provider_versions": ["network-provider-2026-09-04"],50  "evidence_cutoff_at": "2026-09-04T12:00:00Z",51  "evaluated_at": "2026-09-04T12:00:01Z",52  "expires_at": "2026-09-04T12:05:00Z",53  "correlation_id": "corr-assessment-login-0001"54}

الإصدارات التي شكّلتها · policy-login-v1 · production-observation-fallback-v2 · ruleset-web-v1 · signals-web-v1 · features-v1 · resolver-v1 · web-sdk-1.0.0 · network-provider-2026-09-04

13 إشارة في الاستجابة الكاملة · مصفوفة المؤشرات ↓

المنتج بالأرقام

الاستجابة

13

مؤشرات ويب في كل استجابة

3

حالات لكل مؤشر: مكتشف، غير مكتشف، لم يُقيَّم

14

أسباب مسمّاة لحالة «لم يُقيَّم»، لا قيمة false صامتة أبدًا

5

توصيات ممكنة

3

مقاييس منفصلة: الثقة، ومطابقة الجهاز، وتغطية الأدلة

1

استدعاء موقَّع لكل حدث يُقيَّم

الجمع

17

أقسام من أدلة المتصفح والجهاز في كل عملية جمع

48

واجهات برمجة للمتصفح تُفحص مقابل الإصدار الذي يدّعيه المتصفح

125

ميلي ثانية أو أقل: الوسيط لزمن الجمع على سطح المكتب في Chrome وFirefox وSafari

0

طلبات أذونات تظهر لمستخدمك

قواعدك وتحقيقاتك

54

رؤى سياقية تُحسب داخل كل تقييم

67

قواعد تستطيع شركتك ترجيحها في درجتها الخاصة: 13 مؤشرًا و54 رؤية

6

قوائم مرجعية منشورة خلف مؤشرات الشبكة

6

لغات وحدة التحكم: الإنجليزية، والبرتغالية (البرازيل والبرتغال)، والإسبانية، والفرنسية، والألمانية

أبدًا — وهذا لا يتغير بحسب الباقة

  • حركة المؤشر وضغطات المفاتيح: لا يجمع SDK أيًّا منهما
  • البكسلات، وعيّنات الصوت، وأسماء مُصنّع وحدة GPU ومُصيِّرها، وأسماء الخطوط: لا تغادر بيانات canvas وWebGL وWebGPU والصوت والخطوط المتصفح إلا في صورة قيم تجزئة، وعائلة GPU، وقناع حضور على قائمة خطوط ثابتة
  • WebRTC والمنافذ المحلية والبطارية ومستشعرات الحركة: لا تُقرأ أبدًا
  • لا طلب أذونات، ولا قرار يُتخذ في المتصفح، ولا إجراء نتخذه نحن على حسابك

— كل قيمة هي عدد مأخوذ من عقد أو كتالوج أو قائمة ذات إصدار، باستثناء زمن الجمع الذي قيس على أجهزة الاختبار لدينا بذاكرة تخزين مؤقت فارغة. لا يتغير أيٌّ منها بحسب الباقة أو الحجم.

03 · حالات الاستخدام

منع الاحتيال على الشاشات التي يهمّ فيها القرار.

يجيب ذكاء الأجهزة عن سؤال واحد قبل أن يسمح الخادم الخلفي لديك بتنفيذ الإجراء: ما الذي يوجد فعلًا على الجانب الآخر من هذه الشاشة؟ الاستدعاء نفسه يخدم كل رحلة؛ والوسم الذي ترسله يكتفي بتصنيفها.

login · password_recovery · profile_change

منع الاستيلاء على الحساب

حساب معروف على جهاز لم يستخدمه من قبل، متصفح يكذب بشأن نفسه، متصفح مضاد للكشف (anti-detect)، تنقّل يستحيل قطعه في الوقت المتاح. كلٌّ منها يعود إليك دليلًا، فلا تطلب عاملًا ثانيًا إلا حين يلزم.

signup · login · checkout

كشف البوتات والأتمتة

المتصفحات عديمة الواجهة (headless)، وأُطر الأتمتة، ووكلاء الذكاء الاصطناعي المعروفون بتوقيعهم، والحركة الآتية من مراكز البيانات. BOT_AUTOMATION وNETWORK_HOSTING يذكران ما رُصد؛ والتغطية تذكر كم أمكن رصده.

signup · deposit · promotions

الحسابات المزيّفة والحسابات المتعددة

الحسابات والأشخاص لكل جهاز ولكل IP، ومدى ندرة ملف الجهاز في قاعدتك، وعملية جمع واحدة تتكرر على جهاز آخر. سياق يمكن لقواعدك أن تزنه، لا حكم تلقائي أبدًا: قد يملك الشخص الواحد عدة حسابات مشروعة.

withdrawal · pix_transfer · trade

احتيال السحب وPix والتحويلات

سحب في الساعة الأولى بعد ظهور جهاز جديد، ومستفيدون مشتركون بين حسابات، وحسابات مجاورة وسمتَها احتيالًا مؤكدًا. الخادم الخلفي لديك هو من يحجز الأموال أو يراجعها؛ نحن لا نفعل ذلك أبدًا.

أي رحلة

المحاكيات والمتصفحات المنتحِلة

محاكيات Android والبيئات الافتراضية، ووحدة GPU مستحيلة للنظام المُعلَن، وإصدار متصفح تناقضه واجهاته البرمجية نفسها. تُقرأ إشارات بصمة الجهاز (device fingerprinting) في صورة قيم تجزئة وعائلات، لا بكسلات خام أبدًا.

أي رحلة

كشف VPN والبروكسي وTor

مزوّدو VPN المعروفون، والبروكسيات العامة، ونقاط خروج Tor، ونطاقات الاستضافة، وApple iCloud Private Relay، من قوائم منشورة نحدّثها من جهتنا. إخفاء الهوية سياق لا إدانة: سياستك تقرّر وزنه.

04 · المقاييس

مقاييس منفصلة. لا متوسط يتنكّر في هيئة يقين.

دمج الثقة والتغطية ومطابقة الجهاز في رقم واحد يُخفي بالضبط ما يحتاج المحلل إلى رؤيته: هل المشكلة في الوصول أم في الأدلة.

trust_score

الثقة في الوصول

72

0100 · الأعلى أفضل

تجيب عن مدى جدارة هذا الوصول بالثقة وفق إصدار السياسة هذا؛ والوسم الذي ترسله لا يغيّرها. عدد صحيح من 0 إلى 100. لا توجد إلا حين assessment_status = COMPLETED؛ وفي كل حالة أخرى تكون null، ولا تكون قيمة افتراضية أبدًا.

ليست احتمال احتيال، ولا سمعة الشخص، ولا قيمة افتراضية للبيانات الناقصة. نعرض 72/100، لا «موثوق بنسبة 72%» أبدًا.

device_match_confidence

مطابقة الجهاز

0.94

01 · الحد الأقصى 0.98

قوة الدليل على أن هذا الوصول آتٍ من الجهاز نفسه الذي رُصد من قبل، من 0 إلى 1. تأتي مع device_id، وهو معرّف عام مبهم للعنقود الاحتمالي.

ليست هوية الشخص، ولا إثباتًا للعتاد. الطرف (Party) والحساب (Account) شيئان مختلفان.

evidence_coverage

كفاية الأدلة

100

0100 · 13 من 13 قُيِّمت

كم أمكن تنفيذه من مجموعة الفحوص المتوقعة، من 0 إلى 100. كل مؤشر منطبق يبقى NOT_EVALUATED يخفض التغطية ويظهر في limitation_codes.

ليست جزءًا من الدرجة. التغطية المنخفضة لا تُنزل الدرجة ولا ترفعها: بل تجعل التقييم غير حاسم.

لماذا لا نجمعها معًا

درجة «اشتباه» واحدة تخلط بين ثلاثة أسئلة مختلفة: هل يستحق هذا الوصول الثقة؟ هل كانت الأدلة كافية؟ هل هو الجهاز نفسه؟ حين تأتي الإجابة منفصلة، يعرف المحلل لديك هل يطلب عاملًا ثانيًا، أم ينتظر الجمع، أم يراجع السجل. وحين تأتي مدموجة، كل ما يعرفه أن «النتيجة 42».

05 · 13 مؤشرًا

ثلاثة عشر مؤشرًا. كلٌّ منها يقول هل رصد، أم لم يرصد، أم تعذّر عليه التقييم.

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

signal_catalog web · 13 رمزًا · مثال withdrawal_completed

  • مكتشف
  • Not_detected
  • — لم يُقيَّم

سلامة البيئة

خصوصية المتصفح · سياق محايد

الشبكة · سياق محايد

الجهاز

reason_codes · NETWORK_TOR_DETECTED REVIEW

في سياساتنا المُدارة، لا يبرّر Tor وحده BLOCK_RECOMMENDED أبدًا؛ أما القواعد التي تضبطها شركتك فتتبع الأوزان وحدّ القطع اللذين اختارتهما. في مثال عقد v1 هذا، طلبت policy-withdrawal-v1 مراجعة السحب لا حظره، ورمز السبب الوحيد يقول ذلك بالضبط. والسياسة المُدارة في الإنتاج اليوم توصي بـ MONITOR عند كل درجة.

المؤشر نفسه، ثلاث حالات

  • مكتشف · NETWORK_TOR PROVIDER · ftid-network-tor.v1 · 0.9 · مثال withdrawal_completed
  • غير مكتشف · NETWORK_TOR PROVIDER · ftid-network-tor.v1 · 0.9 · مثال login_completed
  • — لم يُقيَّم · NETWORK_TOR not_evaluated_reason_code PROVIDER_UNAVAILABLE · limitation_codes ["PROVIDER_UNAVAILABLE"] · evidence_coverage 69 · مثال provider_unavailable

الكاشف الغائب أو المنتهي الصلاحية أو المتعطّل لا يصير false أبدًا. ولا تأتي NOT_APPLICABLE إلا من المصفوفة الثابتة في الكتالوج بحسب القناة والمحرّك والمنصة؛ ووسمك لا يغيّرها أبدًا، ولا تسلك هذا الطريق المختصر سياسةٌ معطّلة أو مهلةٌ منتهية أو انقطاعٌ في الخدمة.

سياق محايد افتراضيًا

PRIVATE_BROWSINGBROWSER_PRIVACY_BRAVEBROWSER_PRIVACY_SAFARIBROWSER_PRIVACY_SAMSUNG_INTERNETNETWORK_PROXYNETWORK_VPNNETWORK_TOR

قد تحدّ مما نرصده. ولا تنخفض التغطية إلا حيث لا تُقيَّم الأدلة. هي ليست احتيالًا. إنها تصف البيئة ولا تتّهم الشخص. في سياساتنا المُدارة، لا تبرّر وحدها BLOCK_RECOMMENDED أبدًا؛ أما القواعد التي تضبطها شركتك فتتبع الأوزان وحدّ القطع اللذين اختارتهما. وحين يتعذّر التمييز بين أنواع الشبكة، كما خلف iCloud Private Relay من Apple، تبقى الاستضافة وVPN والبروكسي كلها NOT_EVALUATED مع NETWORK_TYPE_AMBIGUOUS: لا نسجّل أبدًا ثلاث حالات كشف من قيمة منطقية واحدة.

تأتي أدلة الشبكة من قوائم مرجعية منشورة نحدّثها على بنيتنا التحتية: عناوين خروج Tor، ونطاقات مزوّدي السحابة، وقوائم شبكات الاستضافة، ونطاقات مزوّدي VPN، وقاعدة بيانات للبروكسيات العامة. لا تُرسَل عناوين مستخدميك أبدًا إلى ناشري القوائم. والقائمة التي تجاوزت عمرها الأقصى تترك مؤشرها NOT_EVALUATED، لا NOT_DETECTED أبدًا.

06 · الرؤى السياقية

ما بعد المؤشرات الثلاثة عشر: 54 رؤية سياقية. للتحقيق، ولدرجتك حين تختار ذلك.

داخل كل تقييم، وقبل الاستجابة، نحسب 54 رؤية سياقية مما جُمع ومن سجل شركتك نفسها: من يستخدم الجهاز أيضًا، وبأي سرعة يتحرك الحساب، ومن أي شبكة، وبجوار أي حسابات. السياسة المُدارة من FingerTrackID تُبقيها خارج الدرجة. وفي قواعد المخاطر الخاصة بك، يمكن لأيٍّ منها أن يكون معطّلًا أو شبحيًا أو نشطًا، مع نقاط لحالتي «غير مألوف» و«غير مألوف جدًا»: الرؤية النشطة التي تنطلق تخصم نقاطًا من درجة الثقة وتذكر اسمها في reason_codes.

context-insight.v1 · 54 رؤية في ستة محاور · كما تُجمَّع في وحدة التحكم وفي قواعدك

  • الحساب والجهاز · 10

    جهاز جديد ونظام تشغيل جديد للحساب · حسابات وأشخاص مختلفون على الجهاز خلال 30 يومًا · حسابات الشخص نفسه عليه · الأجهزة لكل حساب ولكل شخص خلال 24 ساعة · جهاز عالي النشاط · مدى شيوع ملف الجهاز أو قلّته أو ندرته في شركتك · فقدان ملف تعريف ارتباط الجهاز

  • عمليات السحب والطلبات · 7

    عمليات السحب في الساعة الأولى بعد ظهور جهاز جديد · المستفيدون لكل جهاز والحسابات لكل مستفيد خلال 30 يومًا · عدد عمليات السحب ومبلغها لكل حساب · عدد الطلبات لكل حساب والفاصل الوسيط بين الطلبات

  • الشبكة والموقع · 12

    دولة جديدة ومزوّد إنترنت جديد (ASN) للحساب · الدول والمزوّدون وعناوين IP المختلفة لكل حساب · الحسابات والأشخاص لكل IP · تنقّل مستحيل · منطقة زمنية للمتصفح لا تطابق دولة الـ IP · دولة مخرج VPN · مزوّد مدرج في قائمة إساءة عامة · Apple iCloud Private Relay

  • سلامة المتصفح وSDK · 16

    أدوات المطوّر مفتوحة · علامات أتمتة · علامة متصفح مضاد للكشف (anti-detect) · توقيع TLS لا يطابق المتصفح المُعلَن، واستقراره خلال 30 يومًا · مُصيِّر برمجي وعائلة GPU · canvas أو صوت يتغيّر بين قراءتين · متصفح داخل تطبيق · وضع ضيف محتمل · وكيل ذكاء اصطناعي معروف بتوقيعه · فئة البوت · SDK مختلف عن الحزمة المعتمدة · جلسة SDK واحدة على عدة أجهزة · عملية جمع مطابقة تتكرر على جهاز آخر · ملف تعريف ارتباط الجهاز مستخدم في أماكن متباعدة جدًا

  • السرعة · 5

    عمليات الوصول لكل جهاز ولكل حساب خلال 5 دقائق وساعة واحدة و24 ساعة؛ ولكل IP خلال 5 دقائق وساعة واحدة · التقييمات بالوسم نفسه لكل حساب ولكل جهاز خلال دقيقة واحدة و5 دقائق وساعة واحدة

  • الروابط بين الحسابات، قفزة واحدة · 4

    حسابات أخرى استخدمت الأجهزة نفسها · حسابات مجاورة رُصدت فيها أتمتة أو انتحال للمتصفح · حسابات مجاورة وسمتَها احتيالًا مؤكدًا · مستفيدو سحب مشتركون مع حسابات أخرى

ثلاث حالات · سبب، لا صفر أبدًا

  • مرصود · الشرط قائم، أو العدد أو القياس يختلف عن قيمته المحايدة.
  • غير مرصود · قُيِّم، وهو غائب أو محايد.
  • لم يُقيَّم · دائمًا مع سببه، ولا يُعرض صفرًا أبدًا.

بعض الرؤى يعتمد على ما ترسله. فبدون مراجع للحساب أو الشخص، أو بدون وسم، أو بدون نتائج، يذكر العنصر ذلك: لم يُرسَل الحساب، تقييم بلا وسم، لم تُرسَل نتائج. والطلب الموسوم لا يحمل مبلغًا ولا مستفيدًا، لذا يذكر عنصرا مبلغ السحب والمستفيد ذلك أيضًا. كما أن أول وصول، أو شبكة مخفية الهوية، أو IP خارج نافذة الساعة الواحدة لفحص ما، كلها أسباب كذلك.

ما ليست هي

  • ليست واحدًا من المؤشرات الثلاثة عشر، وليست رمز قيد أبدًا. لا تصل إلى reason_codes إلا عبر قاعدة جعلتها شركتك نشطة.
  • لا تدخل أبدًا في درجة السياسة المُدارة من FingerTrackID. والرؤية النشطة بلا بيانات لا تخصم شيئًا: الأدلة الناقصة لا تصير مخاطرة أبدًا.
  • ليست نموذجًا خفيًا: كل رؤية تُقرأ على أنها متوقعة أو غير مألوفة أو غير مألوفة جدًا وفق مقياس تستطيع شركتك ضبطه، انطلاقًا من قيمة افتراضية منشورة.
  • ليست اتهامًا: العدد الكبير من الحسابات أو الأشخاص على جهاز واحد ليس دليلًا على الاحتيال، ولا توجد قاعدة «N حسابات لكل جهاز = احتيال».

أين يقرؤها المحلل

تفاصيل الوصول. بطاقة «سياق الوصول» تجمع الرؤى بحسب المحور، مع نوافذها الزمنية، وحدّ السجل الذي أخذته في الحسبان، ومدى عدم مألوفية كلٍّ منها على مقياسك، وسبب كل عنصر بقي بلا قيمة. والرؤية التي لا تتسع لها ميزانية وقت التقييم تُستكمل في الخلفية وتذكر ذلك؛ ولا تؤخّر الاستجابة أو تُفشلها أبدًا.

كتالوج المؤشرات. صفحة واحدة تشرح ما يبحث عنه كل مؤشر من المؤشرات الثلاثة عشر، وما يتركه دون تقييم، وهل يمكنه تحريك الدرجة، وتسرد الرؤى السياقية مع الأسباب التي قد تُبقيها بلا قيمة.

canvas وWebGL والصوت والخطوط تُقرأ وفق سياسة الجمع المُدارة لكل شركة، في صورة قيم مشتقة فقط، وتغذّي بعض هذه الرؤى، مثل عائلة GPU، أو المُصيِّر البرمجي، أو التصيير الذي يتغيّر بين قراءتين. وحيث لا يسمح المتصفح بفحص ما، يبقى العنصر دون تقييم، مع سببه.

07 · غير الحاسم نتيجة أيضًا

حين يتعذّر علينا التقييم، نقول ذلك، ونقول لماذا.

الأدلة الناقصة لا تُنتج ثقة 100، ولا تصير إشارة احتيال. وعند غياب الدرجة، تأتي التوصية من البديل الاحتياطي المجمَّد داخل إصدار السياسة والمشمول بقيمة التجزئة الخاصة به، وهي إجابة واحدة لكل حالة بلا درجة، أيًّا كان الوسم: MONITOR. ولا تكون ALLOW أبدًا.

حالات بلا درجة من أمثلة العقد

الوسم لا يختار البديل الاحتياطي أبدًا. في السياسة المُدارة، كل حالة بلا درجة، على أي وسم، توصي بـ MONITOR: تابِع وسجِّل. وكذلك أمثلة العقد الثلاثة أدناه.

  • INCONCLUSIVEالوسم login · لم يُحمَّل SDK

    MONITOR

    لا جمع: trust_score: null، evidence_coverage: 0، COLLECTOR_NOT_LOADED، الأساس INSUFFICIENT_EVIDENCE. لا شيء يُمرَّر أبدًا على أنه ALLOW.

  • INCONCLUSIVEأدلة الشبكة غير متاحة

    MONITOR

    أربعة مؤشرات شبكة NOT_EVALUATED، evidence_coverage: 69، PROVIDER_UNAVAILABLE. أيًّا كانت العملية، تبقى في نظامك وتحت قرارك؛ نحن لا نحجز أموالًا أبدًا.

  • FAILEDالوسم pix_transfer · السياسة غير متاحة

    MONITOR

    عطل تقني: POLICY_UNAVAILABLE، policy_version: null، الأساس TECHNICAL_FAILURE. لا يُقرأ أبدًا على أنه «لا مخاطر».

بلا درجة لا نوصي أبدًا بـ ALLOW · fallback_policy_version production-observation-fallback-v2 في الأمثلة · يُتحقَّق من البديل الاحتياطي مع السياسة في كل مرة تُقرأ فيها السياسة

أربع حالات للتقييم

مكتمل 72 الأساس EVALUATION · reason_codes تشرح الدرجة
غير حاسم null الأساس INSUFFICIENT_EVIDENCE · limitation_codes تذكر ما نقص
غير قابل للتقييم null الأساس OUT_OF_POLICY_SCOPE · حدث صالح لا تغطيه السياسة
فشل null الأساس TECHNICAL_FAILURE · POLICY_UNAVAILABLE، policy_version null · لا يعني «لا مخاطر» أبدًا

رموز القيود الأربعة عشر في الكتالوج · ما نقص، لا لماذا هو خطِر أبدًا

NO_FIRST_PARTY_COOKIEINSTALLATION_COOKIE_REJECTEDNO_EDGE_SIGNALSSTALE_DEVICE_PROFILEPROVIDER_UNAVAILABLEPROVIDER_BUDGET_EXCEEDEDCOLLECTOR_NOT_LOADEDUNSUPPORTED_RUNTIMEREQUIRED_EVIDENCE_MISSINGDETECTOR_TIMEOUTDETECTOR_ERRORNETWORK_TYPE_AMBIGUOUSCLIENT_CLOCK_SKEWPOLICY_UNAVAILABLE

رمز القيد يشرح الجمع والجودة؛ ورمز السبب يشرح السياسة. كل مؤشر NOT_EVALUATED يشير إلى رمزه الخاص؛ والتقييم يجمعها كلها في limitation_codes. قيد الجمع ليس سببًا للمخاطر أبدًا.

08 · أنت تقرّر

خمس توصيات. وصفر إجراءات نتخذها نحن.

recommended_action يذكر ما تقترحه السياسة. وcustomer_action يذكر ما فعلتَه أنت. حقلان لأنهما حقيقتان.

من يوصي، ومن يقرّر، ومن يتصرّف

FingerTrackID يوصي

  • ALLOW
  • MONITOR
  • STEP_UP
  • REVIEW
  • BLOCK_RECOMMENDED

لا تُبنى أبدًا على الخصوصية وحدها · Tor، VPN، بروكسي، التصفح المتخفي، جهاز مشترك

مسارك يقرّر

الخادم الخلفي لديك يقرّر ويتصرّف. نحن نعيد توصية؛ واليوم تجيب السياسة المُدارة بـ MONITOR، للمراقبة فقط. ما يحدث للوصول يُقرَّر ويُنفَّذ من جهتك. أنت تعرف الحساب والحد والسجل وكلفة الاحتكاك. نحن لا نعرفها.

أنت تتصرّف وتُبلغنا

  • ALLOWED
  • CHALLENGED
  • HELD
  • REVIEWED
  • BLOCKED
  • CANCELLED

customer_action · الحقل الذي ترسله إلينا

  • نحن لا نصادق على هوية شخص أبدًا.
  • نحن لا نحظر واجهتك أبدًا.
  • نحن لا نحرّك أموالًا أبدًا.

ما لا تعنيه كل توصية

  • ALLOW

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

  • MONITOR

    تابِع، لكن سجِّل. إنه البديل الاحتياطي بلا درجة على كل وسم، وهو اليوم أيضًا إجابة السياسة المُدارة عند كل درجة. لا يعني اشتباهًا مؤكدًا، ولا يتطلب أي إجراء من المستخدم.

  • STEP_UP

    اطلب عاملًا ثانيًا أو تأكيدًا. لا يعني أننا نتحدّى أحدًا: أنت من يعرض التحدي.

  • REVIEW

    أحِلْه إلى مراجعة بشرية. لا يعني أننا نحجز أموالًا: العملية تبقى في نظامك وتحت قرارك.

  • BLOCK_RECOMMENDED

    السياسة تقترح الرفض. لا يعني حظرًا نُفِّذ، ولا احتيالًا مؤكدًا، ولا إيقافًا. حين تحظر أنت، يصبح ذلك customer_action: BLOCKED، حدثًا خاصًا بك، ويغذّي قياس الدقة.

09 · التكامل

ثلاث خطوات، وعقد واحد. المتصفح يجمع؛ والخادم الخلفي لديك يسأل؛ ونحن نجيب.

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

SDK على موقعك

يجمع SDK ويعيد رمزًا مميزًا. هذا كل شيء.

يُقدَّم من نطاق فرعي تملكه. قبل أن ترسل الطلب الذي تريد تقييمه، أيًّا كانت الشاشة، يجمع إشارات المتصفح والبيئة ويتلقى 202 PROCESSING: وهو يؤكد الاستلام، لا نتيجة. تُضاف إشارات الشبكة من الحافة على نطاق الجمع الخاص بك، لا من النص البرمجي أبدًا. لا تعود أي درجة أو إشارة أو قرار إلى المتصفح.

import { initializeSdk } from '@ftid/sdk-web'

// publicKey is a public locator, not a secret.
// collectionOrigin is YOUR collection domain (https).
const sdk = initializeSdk({
  publicKey: 'pub_app_0123456789abcdef',
  collectionOrigin: 'https://collect.yourcompany.com',
})

// ACCEPTED (202 PROCESSING on the wire): confirms receipt, not a result.
const collection = await sdk.collect()
if (collection.status !== 'ACCEPTED') {
  // Without collection the journey continues; the backend will get
  // INCONCLUSIVE / COLLECTOR_NOT_LOADED: no fake score.
  return continueWithoutToken()
}

// Create the event before sending the request to be assessed.
const event = sdk.createEvent(collection.observation)

// Only a COMPLETED collection yields a token. The token goes in the POST
// that YOUR backend makes; the decision never comes back here.
const ctx = await sdk.getEventContext(event)
const token =
  ctx.status === 'COMPLETED'
    ? ctx.eventContextToken
    : null

الخادم الخلفي لديك يستدعي

استدعاء واحد موقَّع ومتزامن، ضمن المهلة التي تحددها.

HMAC-SHA-256 على عشرة أسطر قانونية — العلامة، وkey_id، والطريقة، والمسار، والطابع الزمني، ومعرّفا الحدث والطلب، وبيانات وصف المحتوى، وقيمة SHA-256 لبايتات الجسم بالضبط في السطر الأخير. لا تُعِد تسلسل JSON أبدًا قبل حساب التجزئة؛ فالعقد يحمل المتجه المعياري. key_id هو محدِّد الموقع العام الوحيد. والسر لا ينتقل أبدًا. المتجه القانوني requests.both_refs_deadline_750 من عقد v1.1: المسار نفسه والتوقيع نفسه كما في v1، مع tag بدلًا من journey وaction وjourney_context.

POST /v1/assessments HTTP/1.1
Host: api.fingertrackid.com
Content-Type: application/json
X-FTID-Signature: v1=<key_id>:<mac-hex>
X-FTID-Timestamp: 1791720000
X-FTID-Request-Id: <uuidv7 of the attempt>
X-FTID-External-Event-Id: evt:tag-0003

{
  "schema_version": "event-assessment-request.v1.1",
  "external_event_id": "evt:tag-0003",
  "idempotency_key": "idem-tag-0003",
  "occurred_at": "2026-10-11T12:00:00.000Z",
  "subject_ref": "subject:synthetic",
  "account_ref": "account:synthetic",
  "event_context_token": "ctx.synthetic-token_0003",
  "tag": "pix_transfer_a1b2c3d4e5f6g7h8i9j0abcdeabcdeabcdeabcdeabcdeabcdez",
  "deadline_ms": 750
}

tag معرّف نصي (slug) بأحرف صغيرة يصل إلى 64 حرفًا (حروف وأرقام وشرطة سفلية، وعشرة أرقام على الأكثر)، ولا يكون بيانات شخصية أبدًا؛ وهذا المتجه عند ذلك الحد · يمكن أن يكون subject_ref وaccount_ref بقيمة null، ووجود account_ref يتطلب subject_ref · المراجع رموز مبهمة خاصة بك، لا رقم هوية وطنية ولا بريدًا إلكترونيًا ولا معرّفًا تسلسليًا أبدًا · deadline_ms عدد صحيح من 250 إلى 5000، أو null لتكون 5000؛ وإن تُجووزت، يعود Problem 503 قابل لإعادة المحاولة، لا درجة جزئية

استجابة متزامنة

اقرأها، وقرِّر، وأرسل إلينا ما فعلته.

status
COMPLETED
trust_score
72
device_match
0.94
coverage
100
reason_codes
NETWORK_TOR_DETECTED
limitations
none
policy
policy-withdrawal-v1
expires_at
+5 min
REVIEW

ثم استدعاءان للتغذية الراجعة: customer_action بما فعلته، وحين تعرف، truth_status بالنتيجة الفعلية (الحصيلة: مشروع، أو احتيال مؤكد، أو أدلة غير كافية). يُخضع العقد كليهما للانضباط نفسه المطبَّق على استدعاء التقييم: لا شيء يُعدّ مقبولًا قبل حفظ دائم (commit)، وإعادة المحاولة المطابقة لا تضيف أثرًا ثانيًا. ويمكن تصحيح الحصيلة لاحقًا — يُضاف التصحيح كسجل لاحق، ويبقى السجل السابق قابلًا للقراءة.

POST /v1/assessments/{assessment_id}/customer-actions
POST /v1/assessments/{assessment_id}/outcomes

↑ عودة إلى المثال الكامل

  • Web SDK
  • واجهة API متزامنة من خادم إلى خادم (S2S)
  • SDK خادم لـ Node.js
  • خادم MCP لوكلاء البرمجة
  • واجهة API للإجراء والحصيلة
  • وحدة التحكم

ويب، في أي متصفح حديث · لا تطبيق للتثبيت · SDK والتقييم والتغذية الراجعة في العقد نفسه ذي الإصدار

npm install @fingertrackid/server يوقّع الاستدعاء نيابةً عنك، و@fingertrackid/mcp يتيح لـ Claude Code أو Cursor أو أي وكيل برمجة يدعم MCP إعداد التكامل انطلاقًا من العقد المنشور. خطوة بخطوة في دليل البدء السريع، ودليل Web SDK، ومرجع API.

10 · انعدام الثقة في المتصفح

المتصفح يجمع فقط. لا يمرّ عبره قرار ولا معرّف أبدًا.

لا شيء آتٍ من المتصفح يُعامَل كمرجعية. التقييم من خادم إلى خادم، وموقَّع، وكل محاولة تُحتسب مرة واحدة: تكرارها لا يُحدث أثرًا جديدًا.

من يتحدث إلى من

Browser Your backend FingerTrackID event_context_token (that is all) HMAC · request_id assessment no decision no device_id

لا يتلقى المتصفح سوى معرّفات مبهمة للجلسة والحدث. الدرجة والإشارات والتوصية تنشأ على الخادم وتبقى فيه. ملف تعريف الارتباط من الطرف الأول موقَّع، وHttpOnly، وSecure، ومحصور في المستأجر (tenant) والتطبيق الخاصين بك.

تشريح الاستدعاء

POST /v1/assessmentsالأمان ftidHmacV1 من العقد
X-FTID-Signature: v1=<key_id>:<mac-hex>key_id UUIDv7 هو محدِّد الموقع الوحيد؛ ولا يصبح المستأجر والتطبيق والبيئة والقدرات مرجعيةً إلا بعد MAC صالح في مقارنة بزمن ثابت. ويُرفض X-Client-Id والـ nonce القديم والتوقيعات المتعددة.
X-FTID-Timestamp: 1791720000زمن Epoch بالثواني. سماحية ±300 ث. الطابع الزمني المستقبلي لا يمدّد مدة الاحتفاظ أبدًا.
X-FTID-Request-Id: <uuidv7>استخدام واحد لكل محاولة، يُحجز بعد MAC صالح. إعادة المحاولة المنطقية توقّع request_id جديدًا؛ وMAC غير الصالح لا يُنشئ حجزًا.
X-FTID-External-Event-Id: evt:tag-0003مطابق بايتًا ببايت لما في الجسم وفي السلسلة الموقَّعة.
body.idempotency_keyالمفتاح نفسه، العملية نفسها: إعادة المحاولة المطابقة تعيد التقييم المحفوظ نفسه، دون إعادة الحساب.
body.deadline_msميزانيتك الزمنية. إن تُجووزت قبل التقييم: Problem assessment-unavailable (503، retryable: true)، لا درجة جزئية.
  • 401موحَّد: key_id غير موجود، أو مُلغى، أو توقيع خاطئ، كلها تُنتج authentication-failed نفسه.
  • 403بيانات اعتماد مُصادَق عليها لكنها تفتقر إلى قدرة التقييم الخاصة بالمسار.
  • 503تبعية الأسرار غير متاحة: مزلاج عام يجعل الاستجابة موحّدة دون الكشف عن وجود key_id من عدمه. وقِّع request_id جديدًا.

11 · سياسة ذات إصدار

لكل قرار إصدار. والإصدار يجمّد كل ما شكّله.

تغيير حساسية مؤشر واحد يُنشئ إصدارًا جديدًا، مع المؤلف وفترة السريان والمحاكاة والتراجع. السجل لا يتغير. وغياب إصدار حقيقي يمنع الاستخدام.

الإصدار الذي قرّر · مثال withdrawal_completed

policy-withdrawal-v1

fallback_policy_version
production-observation-fallback-v2
ruleset_version
ruleset-web-v1
signal_catalog_version
web-detectors-v3
feature_schema_version
configured-assessment-features.v1
resolver_version
first-party-installation-v1
sdk_version
0.1.0
provider_versions
asn-reputation.v1 · cloud-ranges.v1 · icloud-private-relay.v1 · ip2proxy-lite-px2.v1 · tor-exit.v1 · x4b-vpn.v1
evidence_cutoff_at
2026-09-04T12:00:00Z
evaluated_at
2026-09-04T12:00:01Z
expires_at
2026-09-04T12:05:00Z
correlation_id
corr-assessment-withdrawal-0001

correlation_id مخصّص للدعم دون كشف أي معرّف شخصي. الإصدارات المعروضة وسوم عامة مبهمة؛ ومعرّفات قاعدة البيانات الداخلية لا تظهر أبدًا في API ولا في webhook ولا في وحدة التحكم.

ما يجمّده إصدار السياسة

  • كتالوج الإشارات
  • التطبيع
  • الخصائص (features)
  • محلِّل الأجهزة
  • القواعد
  • استراتيجية الربط
  • المستويات لكل مؤشر
  • الحدود القصوى والعتبات

قابل لإعادة الإنتاج، ولا يُعاد كتابته أبدًا

مثال login_completed

assessment_version1

supersedes_assessment_idnull

مثال login_completed_revision_2

assessment_version2

supersedes_assessment_id…0000000101

المراجعة التشغيلية تحافظ على السياسة وعلى كل إصدار آخر كان ساريًا عند received_at الخاص بالحدث. والسياسة الجديدة على حدث قديم محاكاة منفصلة؛ ولا تعيد أبدًا كتابة التوصية التي وجّهت القرار التاريخي.

12 · الوضع الظلي

بالتوازي أولًا. وبعدها فقط تؤثر الاستجابة في أي إجراء.

الوضع الظلي هو تشغيل FingerTrackID جنبًا إلى جنب مع ما تستخدمه اليوم، دون أن تمسّ الاستجابة أي قرار. تقارن، وترسل النتائج الفعلية، وبعدها فقط تبدأ باستخدام التوصية. هكذا نوصي بالبدء.

الدورة الكاملة

  1. 01

    SDK يجمع

    202 PROCESSING · event_context_token

  2. 02

    الخادم الخلفي لديك يطلب التقييم

    POST /v1/assessments · متزامن

  3. 03

    تقرّر عبر مسارك

    في الوضع الظلي، دون استخدام الاستجابة

  4. 04

    تُبلغ بالإجراء

    customer_action · POST …/customer-actions

  5. 05

    تُبلغ بالنتيجة

    truth_status · POST …/outcomes

recommendation_alignment · يُشتق على الخادم من الزوج توصية × إجراء؛ ولا يُعلنه العميل أبدًا. التطابق لا يثبت سببية ولا دقة ولا احتيالًا.

مقارنة، حقلًا بحقل

recommended_actioncustomer_actionrecommendation_alignment
REVIEWREVIEWED أو HELDALIGNED
STEP_UPALLOWEDNOT_ALIGNED
ALLOW أو MONITORALLOWEDALIGNED
BLOCK_RECOMMENDEDBLOCKEDALIGNED
أيCANCELLEDNOT_COMPARABLE

الحظر لا يثبت الاحتيال. تأكيد الاحتيال يتطلب دليلًا مستقلًا: ينتقل truth_status من PENDING إلى LEGITIMATE أو FRAUD_CONFIRMED أو INSUFFICIENT_EVIDENCE، بنضج PROVISIONAL أو MATURE. ولا يصبح مقياسًا للجودة إلا التصنيف الناضج.

ما تغذّيه الدورة

  • الإيجابيات الكاذبة والسلبيات الكاذبة كمقاييس مشتقة من تصنيفات ناضجة، لا حقول تُكتب يدويًا.
  • إعادة معايرة القواعد والعتبات، دائمًا كإصدار سياسة جديد.
  • جودة الكواشف تُقاس في الوضع الظلي لديك، قبل أن تؤثر الاستجابة في أي إجراء من إجراءاتك.
  • ما لا تفعله: أن تتحول إلى إنفاذ تلقائي. customer_action وtruth_status حقيقتان منفصلتان، وكل تصحيح يُنشئ سجلًا لاحقًا.

13 · الخصوصية بموجب العقد

محدودة بالعقد، لا بإعداد.

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

packages/contracts/src/sdk-handshake-v1.ts · سياسة الجمع

canvas: z.boolean(),
audio: z.boolean(),
fonts: z.boolean(),
behavioral: z.literal(false),

packages/contracts/src/sdk-signals/rendering-v1.ts · مقتطف

const Hash128 = z.string().regex(/^[0-9a-f]{32}$/)
canvas_hash: Hash128.optional(),
webgl_gpu_family: z.enum(SDK_RENDERING_GPU_FAMILY_V1).optional(),
audio_hash: Hash128.optional(),
fonts_count: z.number().int().min(0).max(SDK_RENDERING_FONT_COUNT_V1).optional(),

الجمع السلوكي، أي حركة المؤشر وضغطات المفاتيح، لا يقبل إلا القيمة off: تشغيله يتطلب تغيير العقد، لا تغيير إعداد. تُقرأ canvas وWebGL والصوت دون اتصال (offline audio) ووجود الخطوط وفق سياسة الجمع المُدارة، التي تشغّلها لكل شركة، ولا تغادر المتصفح إلا في صورة قيم مشتقة: قيم تجزئة بطول ثابت، وعائلة GPU مغلقة، وعدد، وقناع حضور على قائمة خطوط ثابتة. لا يحتوي العقد على حقل للبكسلات أو عيّنات الصوت أو أسماء مُصنّع GPU أو مُصيِّره أو أسماء الخطوط. ومجتمعةً، يمكن لهذه القيم المشتقة أن تتعرّف على المتصفح نفسه مجددًا، لذا تُعامَل كبيانات جهاز لا كبيانات مجهولة. ولا يُجمع أبدًا، كقاعدة مطلقة: كلمة المرور، والنص المكتوب، ومحتوى المحادثات أو المستندات، والحافظة، ولقطات الشاشة، والميكروفون، والكاميرا. لكل دليل فئة خصوصية، والفئة ليست وزنًا للمخاطر.

ضمانات لا تعتمد على حسن النية

  • البيانات الشخصية لا تدخل السجلات. والبيانات الخام لا تظهر بحرية في وحدة التحكم: كل وصول إليها يُسجَّل. ولا يوضع معرّف أو قيمة شخصية في عنوان URL أبدًا.
  • الربط بين المستأجرين معطّل. كل جدول نطاق يحمل tenant_id مع عزل مفروض في قاعدة البيانات. لا توجد سمعة ولا تصنيفات مشتركة بين العملاء.
  • ملف تعريف ارتباط من الطرف الأول يُقدَّم من نطاقك: موقَّع، وHttpOnly، وSecure، ومحصور في المستأجر والتطبيق الخاصين بك. القيمة لا تنتقل أبدًا إلى قاعدة بيانات أو طابور أو سجل؛ وإن غابت أو رُفضت، تتراجع الاستمرارية كقيد ولا يتوقف التقييم.
  • كل دمج للأجهزة قابل للتراجع ويسجّل إصدار المحلِّل الذي أجراه. ولا يدمج الـ IP وحده الأجهزة أبدًا.
  • لكل نوع من الأدلة غرض مُعلَن، وفئة خصوصية، وقاعدة وصول، ومدة احتفاظ في جرد البيانات لدينا. أما الأساس القانوني وموطن البيانات واتفاقية معالجة البيانات (DPA) فتُعالَج مع فريقك القانوني عند التعاقد؛ ولا شيء في هذه الصفحة يُعدّ استشارة قانونية.

الطرف (Party) ليس الحساب (Account)

Party Account Account Account

الرابط يأتي من الخادم الخلفي لديك · ولا يُستنتج من البصمة أبدًا

شخص واحد، وعدة حسابات مشروعة. الحساب لا يغيّر صاحبه بصمت أبدًا؛ والجلسة لا تتقدم إلا من مجهول إلى شخص ثم إلى حساب للشخص نفسه. التناقض تعارض، لا ارتباط جديد ولا دليل سلبي مرتجَل.

أين تُحفظ البيانات

cloud
Google Cloud, us-central1 region
source of truth
PostgreSQL, single
isolation
RLS forced per tenant, with a negative test
secrets
Secret Manager; never in code or in infrastructure state
logs
no PII; raw data never displayed freely

14 · وحدة التحكم

وحدة تحكم للتكامل والتحقيق وإغلاق الحلقة.

تجيب وحدة التحكم أولًا عن سؤال «هل نستقبل ونقيّم ونشرح بجودة؟»، وبعدها فقط تسمح لأي أحد بالحديث عن المشروعية. كل نسبة مئوية تذكر مقامها.

رسم تخطيطي، لا لقطة شاشة · ألوان وحدة التحكم داخل الإطار

تفاصيل الوصول. المقاييس الثلاثة كثلاثة مكوّنات منفصلة؛ والتوصية مع recommendation_basis الخاص بها، والسياسة السارية، وما أبلغ فريقك أنه فعله؛ وحداثة الأدلة؛ والمؤشرات الثلاثة عشر مع الحالة والانطباق والمصدر وثقة الكاشف والحداثة وسبب أي «لم يُقيَّم»؛ والقيود ورموز الأسباب؛ والجلسة والجهاز وارتباطاتهما؛ والتعدد على الجهاز؛ وموقع تقريبي من الشبكة؛ وسياق الوصول؛ وتبويب للبيانات التقنية بكل ما جمعه SDK والحافة، بما في ذلك إصدار المتصفح الحقيقي المقروء من الواجهات البرمجية التي يتيحها، بجانب الإصدار الذي يعلنه.

مرشّحات التحقيق. تضيق قائمة عمليات الوصول بحسب مزوّد الإنترنت (ASN)، ودولة الشبكة، وتثبيت الجهاز، وسبب عدم تقييم مؤشر، وحتى مؤشرين في حالتين مختارتين في الوقت نفسه، وتعثر على وصول عبر مرجع الحساب أو الشخص الخاص بك. لا يوجد مرشّح بعنوان IP: فهو بيانات شخصية. وكل تفاصيل وصول تحمل أيضًا رؤاه السياقية ↑.

تحقيق معمّق. من أي وصول، يفتح رسم بياني للروابط الأجهزةَ والحسابات المحيطة به، قفزة تلو قفزة، على مدى يصل إلى 92 يومًا من سجلك الخاص. كل توسيع قراءة مسجَّلة؛ ولا تتحول عناوين IP إلى عُقد أبدًا.

قوائم الحظر والسماح. من تفاصيل الوصول، يضع فريقك جهازًا أو مرجع حساب أو IP منفردًا في قائمة الحظر لدى شركتك (حظر أو مراجعة) أو في قائمة السماح، مع ملاحظة واسم من أضافه. وعلى وصول إنتاجي ذي درجة، يتجاوز الإدخال التوصية ويذكر اسمه في reason_codes. لا يُحذف شيء: إزالة الإدخال تسجّل من أزاله ومتى.

مساعد بالذكاء الاصطناعي. لوحة جانبية تشرح كل شاشة وتجيب عن أسئلة حول التكامل وعمليات الوصول الخاصة بك، ضمن شركتك ودورك.

إعدادات المخاطر. قواعد المخاطر الخاصة بشركتك، لكل تطبيق: كل مؤشر من المؤشرات الثلاثة عشر معطّل أو شبحي أو نشط، بوزن من 1 إلى 100 نقطة، وأنت تحدد نطاقات الدرجة وإجراء كلٍّ منها. القاعدة الشبحية تُحسب وتُسجَّل لكنها لا تغيّر الاستجابة أبدًا. وقبل النشر، تعيد بطاقة الأثر تشغيل مسودتك على تقييمات آخر 1 أو 7 أو 30 يومًا. ويمكن لكل رؤية من الرؤى السياقية ↑ الأربع والخمسين أن تنضم إليها بنقاطها الخاصة. مسؤول النظام أو مشرف المخاطر لديك ينشر مباشرة؛ وكل نشر إصدار جديد خاضع للتدقيق، وكل شيء إلى الوضع الشبحي يوقف كل قواعدك دفعة واحدة. لا يفعّل FingerTrackID قاعدة نيابةً عنك أبدًا: لا يستطيع دعمه إلا وضع كل قواعد تطبيق ما في الوضع الشبحي، مع سبب تعرضه وحدة التحكم لديك. وما دامت لا توجد قاعدة نشطة، تجيب السياسة المُدارة، التي ينشرها فريق FingerTrackID بموافقة مسجَّلة.

ست عشرة شاشة في أربع مجموعات · الرئيسية، والكشف، والتشغيل، والإدارة

  • 01الرئيسية
  • 09التكامل والصحة
  • 02نظرة عامة
  • 10الاستخدام
  • 03عمليات الوصول
  • 11التصدير
  • 04طابور المراجعة
  • 12التقارير
  • 05إعدادات المخاطر
  • 13المستخدمون والصلاحيات
  • 06محاكاة السياسات
  • 14التدقيق
  • 07القوائم
  • 15دورة حياة العميل
  • 08كتالوج المؤشرات
  • 16الحساب والأمان

طابور المراجعة هو وحدة مراجعة السحب: طابور تشغيلي مبني على النواة نفسها، يُحيل إلى شخص كل عملية سحب v1 أُوصي فيها بـ REVIEW، مع الأدلة بجانبها. التقييمات الموسومة لا تدخله أبدًا، ويبقى فارغًا ما دامت السياسة توصي بـ MONITOR، كما تفعل السياسة المُدارة اليوم.

بالإنجليزية والبرتغالية (البرازيل والبرتغال) والإسبانية والفرنسية والألمانية. تسجيل الدخول بمفتاح المرور (passkey) أو بعامل ثانٍ؛ وصلاحيات بحسب الدور؛ وسجل تدقيق لمن اطّلع على البيانات الحساسة ومن غيّر ماذا. البيانات الخام لا تظهر بحرية: كل وصول إليها يُسجَّل.

15 · كيف نحتسب الرسوم

وحدة فوترة واحدة. وكل ما عداها لا يُحتسب.

السعر بحسب حجم عمليات الجمع المكتملة، ويُحدَّد في العرض. الوضع الظلي يستهلك الوحدات نفسها ويظهر في وحدة التحكم كاستخدام تقديري؛ وما يدخل الفاتورة عن تلك الفترة يحدّده العرض.

الوحدة

لقطة ذكاء أجهزة واحدة في الإنتاج، تطلبها عملية التكامل لديك وتكتمل.

هي وحدة القياس ووحدة الفوترة المرشّحة. كل device_intelligence_snapshot_id يُنتج وحدة واحدة على الأكثر، مهما كان عدد التقييمات أو الوسوم أو المزوّدين أو عمليات إعادة المعالجة التي تستخدم عملية الجمع تلك.

  • الدرجة والتوصية والإجراء والحصيلة لا تحدد الفوترة. النتيجة الخطِرة لا تكلّف أكثر؛ والنتيجة المشروعة لا تكلّف أقل.
  • الحد التجاري لا يتحول أبدًا إلى حظر أو تقييد لمعدل الطلبات أو تخفيض تلقائي للخدمة.
  • كل لقطة مطلوبة تُنتج سجل استخدام غير قابل للتغيير، حتى حين لا تكون قابلة للفوترة. الاستثناءات يُثبتها ذلك السجل، ولا يُعاد بناؤها من السجلات التشغيلية.

الحدث · هل يُنشئ وحدة؟

  • تطبيقات غير إنتاجية (تطوير، staging)لا
  • إعادة محاولة بـ idempotency_key نفسهلا
  • أي تقييم، على أي وسم، يعيد استخدام لقطة حديثةلا
  • إعادة المعالجة، أو إعادة التشغيل التاريخية، أو تغيير السياسةلا
  • الإثراء غير المتزامن والتحديث اللذان نبدؤهما نحنلا
  • استدعاء مزوّد أو إعادة محاولتهلا
  • تسليم webhookلا
  • customer_action والحصيلةلا
  • استعلام، لوحة متابعة، تقرير، تصديرلا
  • 4xx بسبب المصادقة أو التفويض أو عقد غير صالحلا
  • 5xx، أو انتهاء مهلة من جهتنا، أو جمع INCONCLUSIVE أو FAILEDلا
  • لقطة إنتاجية، تطلبها عملية التكامل، مكتملةنعم · 1

عرض بحسب الحجم، مع استخدام الوضع الظلي على الطاولة.

اطلب عرضًا

16 · الأسئلة الشائعة

الأسئلة التي يطرحها رئيس المخاطر والمدير التقني (CTO).

Q01كيف يبدأ التكامل؟
في الوضع الظلي. تثبّت SDK على موقعك، وتفعّل الاستدعاء من خادم إلى خادم، فتبدأ الاستجابة بالعمل بجانب مسارك الحقيقي دون أن تمسّ أي قرار. ترسل إلينا customer_action والحصيلة، وفي وحدة التحكم تقارن، وصولًا بوصول، بين التوصية وما أبلغ فريقك أنه فعله، وتتابع تغطية الأدلة. وحين تتّسق الأرقام، يقرّر فريقك هل وأين تبدأ التوصية بالتأثير في قرار، وتنفيذه دائمًا من الخادم الخلفي لديك.
Q02ما الرحلات التي تقيّمونها؟
أي شاشة تختارها. يرسل الخادم الخلفي لديك tag خاصًا بك مع كل تقييم، وهو معرّف نصي بأحرف صغيرة مثل login أو withdrawal أو pix_transfer: بلا تسجيل، وبلا قائمة مغلقة، وبلا حد. تُرشِّح وحدة التحكم وتجمّع وتصدّر بحسب الوسم، والقوالب (التسجيل، تسجيل الدخول، استعادة كلمة المرور، العامل الثاني، تغيير الملف الشخصي، الإيداع، السحب، تحويل Pix، التداول، الدفع) مجرد دليل للتكامل. الوسم لا يختار أبدًا السياسة ولا الكواشف ولا البديل الاحتياطي ولا المهلة: كل تقييم موسوم يعمل تحت السياسة نفسها والمؤشرات الثلاثة عشر نفسها. ويجب ألا يحمل بيانات شخصية أبدًا. والطلب لا يحمل مبلغًا ولا عملة ولا مستفيدًا.
Q03لماذا لا تحظرون؟
لأن الحدث ليس احتيالًا، والدرجة ليست قرارًا، والحظر لا يثبت شيئًا. أنت من يعرف الحساب والحد والسجل وكلفة الاحتكاك. نحن نقدّم الأدلة والتغطية وتوصية مشروحة. BLOCK_RECOMMENDED أقوى توصية موجودة، وتبقى مع ذلك توصية. وحين تحظر، تسجّل customer_action: BLOCKED، فيصبح ذلك بيانات لقياس ما إذا كانت التوصية صائبة.
Q04هل تُنزل VPN أو Tor أو النافذة الخاصة الدرجة؟
في سياساتنا المُدارة، لا يُنتج أيٌّ منها BLOCK_RECOMMENDED وحده؛ أما القواعد التي تضبطها شركتك فتتبع الأوزان وحدّ القطع اللذين اختارتهما. الوضع الخاص وحمايات المتصفح سياق محايد: قد تخفض التغطية وتظهر في التفاصيل، دون رمز سبب سلبي. أما Tor والبروكسي وVPN والاستضافة فسياق إخفاء هوية: يمكن للسياسة أن تزنها مع ما رُصد غيرها، لا بحسب الوسم أبدًا. وفي السياسة المُدارة اليوم، لا يحرّك الدرجة إلا الأتمتة وانتحال المتصفح، والتوصية هي MONITOR. وفي مثال عقد السحب v1 في هذه الصفحة، أدّى كشف Tor إلى REVIEW، ورمز السبب يذكر ذلك. وليس احتيالًا في حد ذاته أبدًا.
Q05ماذا لو لم يُحمَّل SDK، أو حظر المستخدم النصوص البرمجية؟
تستمر الرحلة. يستدعي الخادم الخلفي لديك واجهة API بدون event_context_token ويتلقى INCONCLUSIVE وtrust_score: null وevidence_coverage: 0 وlimitation_codes: ["COLLECTOR_NOT_LOADED"] والتوصية الاحتياطية، MONITOR. لا درجة مخترعة أبدًا. ولا ALLOW أبدًا بسبب نقص الأدلة.
Q06ما زمن الاستجابة؟ وهل توجد اتفاقية مستوى خدمة (SLA)؟
المهلة تحددها أنت. القيمة الافتراضية في العقد 5000 ms، وdeadline_ms يضبطها في أي قيمة من 250 إلى 5000 (اجعل مهلة HTTP لديك أعلى من نحو 6 ث للقيمة الافتراضية)؛ وإن تُجووزت، تتلقى Problem assessment-unavailable (503، retryable: true، مع Retry-After)، لا استجابة جزئية. كرّر العملية المنطقية نفسها بـ request_id جديد. زمن الاستجابة واتفاقية SLA يدخلان في العرض، ويُقاسان في الوضع الظلي لديك قبل أن يعتمد أي قرار على الاستجابة.
Q07كيف أعرف أن الاستجابة لم تُزوَّر؟
لا تمرّ عبر المتصفح أبدًا. يوقّع الخادم الخلفي لديك كل استدعاء بـ HMAC-SHA-256 على عشرة أسطر قانونية، آخرها قيمة SHA-256 لبايتات الجسم بالضبط؛ وkey_id UUIDv7 هو محدِّد الموقع العام الوحيد؛ وrequest_id محجوز ضد إعادة الإرسال؛ وفشل المصادقة يعيد 401 موحّدًا دون الكشف عن وجود المفتاح. السر لا ينتقل أبدًا. ومتجه الاختبار المعياري للبروتوكول جزء من العقد؛ وبه تعيد إنتاج التوقيع بايتًا ببايت.
Q08هل عليّ إرسال رقم هوية وطنية أو بريد إلكتروني أو رقم هاتف؟
لا. يستخدم التقييم مراجع مبهمة للشخص والحساب لا يحلّها إلا نظامك. البيانات الشخصية بنص واضح ليست متطلبًا للمنتج. سلوك المؤشر وضغطات المفاتيح معطّل في العقد. فحوص canvas وWebGL والصوت والخطوط تعمل وفق سياسة الجمع المُدارة لكل شركة، ولا تغادر المتصفح إلا في صورة قيم تجزئة وعائلة GPU وقناع حضور على قائمة خطوط ثابتة، لا بكسلات ولا صوتًا ولا أسماء GPU ولا أسماء خطوط أبدًا. كلمة المرور والنص المكتوب والحافظة ولقطات الشاشة والميكروفون والكاميرا محظورة. لكل نوع من الأدلة غرض مُعلَن وفئة خصوصية ومدة احتفاظ؛ ويُراجَع الأساس القانوني مع فريقك القانوني قبل تشغيل الإنتاج، ولا شيء في هذه الصفحة يحلّ محل تلك المراجعة.
Q09كم يكلّف، وما المطلوب من فريقي؟
السعر بحسب حجم عمليات الجمع المكتملة، في عرض. وحدة الفوترة المرشّحة لقطة مكتملة في الإنتاج؛ ولا يُحتسب شيء خارج الإنتاج. ومن جهتك: نص برمجي واحد على الموقع، ونقطة نهاية واحدة من خادم إلى خادم في الخادم الخلفي لطلب التقييم، واستدعاءان لواجهة API لإرسال الإجراء المتخذ والنتيجة الفعلية (الحصيلة). SDK للويب ويعمل في أي متصفح حديث؛ ولا يوجد تطبيق للتثبيت.
Q10ما ذكاء الأجهزة (device intelligence)، وبمَ يختلف عن بصمة الجهاز (device fingerprinting)؟
بصمة الجهاز تقرأ سمات ثابتة للمتصفح كي تتعرّف عليه مجددًا. أما ذكاء الأجهزة فيبدأ من هناك ويذهب أبعد: يتحقق هل هذه السمات متّسقة فيما بينها ومع الشبكة، وهل تعمل أتمتة أو محاكٍ أو متصفح مضاد للكشف، وكيف يتصرّف هذا الجهاز عبر حساباتك. يعيد FingerTrackID ذلك في صورة درجة ثقة، ومطابقة جهاز بثقة خاصة بها، وتغطية للأدلة، و13 مؤشرًا، كلٌّ منها مع إصدار الكاشف الذي قرأه.
Q11هل يمكننا وضع قواعدنا ودرجاتنا وقوائمنا الخاصة؟
نعم. في وحدة التحكم، تمنح شركتك نقاطًا لأي من المؤشرات الثلاثة عشر والرؤى السياقية الأربع والخمسين، وتختار نطاقات الدرجة وتوصية كل نطاق، ويمكنها تشغيل أي قاعدة في الوضع الشبحي أولًا، فتُحسب وتُسجَّل دون تغيير الاستجابة. قوائم الحظر والسماح تقبل جهازًا أو مرجع حساب أو IP منفردًا، إدخالًا واحدًا في كل مرة، مع ملاحظة واسم من أضافه. كل نشر إصدار جديد خاضع للتدقيق. لا يفعّل FingerTrackID أبدًا قاعدة ولا يضيف إدخالًا إلى قائمة نيابةً عنك.
Q12هل يمكن لوكيل برمجة بالذكاء الاصطناعي إجراء التكامل؟
نعم. SDK الخادم @fingertrackid/server يوقّع الاستدعاء، وخادم MCP @fingertrackid/mcp يمنح Claude Code أو Cursor أو أي وكيل يدعم MCP العقودَ ومتجهات التوقيع ووحدة خادم جاهزة لكل وسم وفحصًا لنطاق الجمع لديك، وكلها للقراءة فقط، وتنشر الوثائق llms.txt وكتلة قواعد جاهزة لـ AGENTS.md الخاص بك. السر يبقى في بيئتك؛ ولا يحتاج الوكيل إلى رؤيته أبدًا.
Q13ما حجم SDK، وهل يُبطئ الصفحة؟
يجمع SDK مرة واحدة، بالتوازي، في طلب واحد إلى نطاق الجمع الفرعي الخاص بك. على سطح المكتب استغرق الجمع الكامل ما بين نحو 80 و125 ms كقيمة وسيطة في Chrome وFirefox وSafari، ضمن ميزانية صارمة قدرها 250 ms؛ وكل فحص يستهلك 2 ms على الأكثر من الخيط الرئيسي، والفحوص التي تنتظر، مثل توقيت الإطارات أو Worker، تنتظر بالتوازي. ولا يعرض أبدًا طلب أذونات ولا يحظر واجهتك أبدًا.

17 · تواصل معنا

قيِّم الرحلة التي تختارها، في الوضع الظلي.

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

احجز عرضًا توضيحيًا

أدخل بريدًا إلكترونيًا بنطاق.
أدخل اسم الشركة.
ما تريد تقييمه

الرحلة هي أي شاشة تختارها، بالاسم الذي تعطيه لها. حدّد ما يدور في ذهنك منها الآن؛ والباقي يظهر في المحادثة.

لا نشرة بريدية · نردّ بالبريد الإلكتروني، شخصًا لشخص · أو اكتب مباشرة إلى contato@fingertrackid.com

كيف نبدأ

  1. محادثة مدتها 30 دقيقة حول الرحلات التي تريد تقييمها ومسار القرار لديك.
  2. بيانات اعتماد خادم لتطبيقك، وعقد قابل للتنفيذ، ومتجه HMAC. لا توجد بيئة sandbox: تختبر في الإنتاج، في الوضع الظلي.
  3. الوضع الظلي مع مسارك الحقيقي: تقارن وترسل النتائج قبل أن تؤثر الاستجابة في أي قرار.
  4. الإنتاج على الشاشات التي تَسِمها، مع سياسة ذات إصدار؛ وكل قرار يبقى لدى الخادم الخلفي لديك.

ما يأتي معها

  • وحدة تحكم مع تغطية الأدلة، ووصولًا بوصول، التوصية بجانب الإجراء الذي أبلغت عنه
  • عقد event-assessment.v1 قابل للتنفيذ، مع متجه اختبار HMAC
  • الوضع الظلي في الإنتاج من اليوم الأول: تعمل الاستجابة بجانب مسارك ولا تمسّ قرارًا أبدًا
  • قناة مباشرة مع من يكتبون السياسة