إشارات Smart Signals هي إشارات إثراء من جانب الخادم تُحسب من بصمات المتصفح، واستخبارات عناوين IP، وتحليل السلوك. توفر سياقًا عميقًا عن كل زائر دون جمع أي بيانات تعريف شخصية.
تُسلَّم إشارات Smart Signals — أي إشارات القرار والمخاطرة والشبكة والروبوتات المُثراة — إلى خادمك عبر الـ webhooks (انظر Webhooks) وتُعرض في لوحة التحكم. تستهلك الأمثلة أدناه شكل حمولة الـ webhook.
| الإشارة | الوصف | الاستجابة | المنصة |
|---|---|---|---|
| VPN Detection | يضع علامة على استخدام VPN اعتمادًا على استخبارات IP | network.vpn: boolean | Web, Mobile |
| Proxy Detection | يحدد استخدام وكلاء مراكز البيانات والوكلاء السكنيين | network.proxy: boolean | Web, Mobile |
| Tor Detection | يطابق عنوان IP مع عُقد خروج Tor المعروفة | network.tor: boolean | Web, Mobile |
| Datacenter | يضع علامة على عناوين IP لمزودي السحابة/الاستضافة | network.datacenter: boolean | Web, Mobile |
| IP Geolocation | تحديد الموقع الجغرافي على مستوى المدينة + ASN من IP | geo.{ country, city, lat, lon, timezone, isp } | Web, Mobile |
| الإشارة | الوصف | الاستجابة | التوفر |
|---|---|---|---|
| Browser Tampering | يكتشف User-Agent المزيَّف، وnavigator المعدَّل، وحقن الإضافات | { result: boolean, anomalyScore: number } | Web |
| Antidetect Browsers | يكتشف متصفحات مكافحة الكشف (Multilogin، GoLogin، Dolphin) عبر فحوص CSS/الخصائص | جزء من حكم التلاعب/الروبوت | Web |
| Privacy Settings | يكتشف تكوينات المتصفح المرتكزة على الخصوصية (Tor Browser، Brave، Firefox ETP، Safari ITP) | { result: boolean } | Web |
| Developer Tools | يكتشف عند فتح أدوات المطور DevTools في المتصفح | { result: boolean } | Web — Business & Enterprise |
| Incognito (Safari) | يستنتج التصفح الخاص في Safari على iOS | { result: boolean } | Web (Safari mobile) |
| الإشارة | الوصف | التوفر |
|---|---|---|
| Virtual Machine | يكتشف VMware/VirtualBox/Parallels/QEMU عبر مُصيِّر/بائع WebGL، والشاشة، وتزامن العتاد | Web — Enterprise |
| Emulator | يكتشف محاكيات Android (BlueStacks، Genymotion، Nox، Android SDK) عبر مُصيِّر GPU وعلامات UA | Web — all plans |
اكتشافات أصلية فقط (قيد التطوير). يعتمد اكتشاف الروت، وكسر الحماية (jailbreak)، والتطبيقات المستنسخة/المزدوجة، وأدوات Frida، وإعادة ضبط المصنع على إشارات لا يستطيع جمعها سوى SDK أصلي للأجهزة المحمولة. وهي غير فعّالة في الوكيل الويبي فقط اليوم. كذلك فإن الاكتشاف العام للتصفح المتخفي عبر المتصفحات (Chrome/Firefox) قيد التطوير؛ ويُستنتج حاليًا فقط التصفح الخاص في Safari على الأجهزة المحمولة.
| الإشارة | الوصف | الاستجابة | المنصة |
|---|---|---|---|
| Bot Detection | يحدد أطر الأتمتة والمتصفحات بلا واجهة (headless) | bot.result: "human"|"bot"|"uncertain", bot.type: string, bot.score: number | Web, Mobile |
| Risk Score | مخاطرة مجمَّعة للطلب، ضمن كائن الـ webhook المسمى decision | decision.riskScore: number, decision.suspectScore: number, decision.action: string | Web, Mobile |
تُحل أعلام VPN والوكيل وTor ومركز البيانات من جانب الخادم انطلاقًا من عنوان IP
الخاص بالزائر باستخدام قواعد بيانات تجارية لاستخبارات IP (IP2Location /
MaxMind). تعرض حمولة الـ webhook العامة النتائج المجمَّعة كقيم منطقية (booleans)
على كائن network — network.vpn، network.proxy، network.tor،
network.datacenter — دون تفصيل لكل طريقة أو سلسلة ثقة. انظر
IP Intelligence للتفاصيل.
قيد التطوير. الاكتشاف العام للتصفح المتخفي عبر المتصفحات (Chrome/Firefox) غير متاح بعد. يستنتج TRACIO حاليًا فقط التصفح الخاص في Safari على الأجهزة المحمولة. لا تعتمد اليوم على علامة
incognitoعامة.
يحدد كاشف التلاعب الزوار الذين عدّلوا متصفحهم لتحريف هويتهم:
navigator عبر مقارنة نماذج الجالبات الأولية (getter prototypes)PluginArray.prototype وMimeType.prototypeFunction.prototype.toString وObject.getOwnPropertyDescriptor ودوال حرجة أخرى قد استُبدلت بوسطاء (Proxies)يقيس anomalyScore (0.0-1.0) درجة عدم الاتساق. القيم فوق 0.5 تشير إلى تلاعب كبير.
يحمل كائن الـ webhook المسمى decision المخاطرة المجمَّعة للطلب:
decision.riskScore (عدد صحيح 0-100)، وdecision.suspectScore (رقم)، و
decision.action (الإجراء الموصى به). تجمع الدرجة مخرجات إشارات Smart Signals؛
تصف النطاقات أدناه كيفية تعيين riskScore إلى مستويات المخاطرة:
| نطاق الدرجة | مستوى المخاطرة | المؤشرات النموذجية |
|---|---|---|
| 0-10 | عادي | إشارات نظيفة، زائر معروف، IP سكني |
| 11-30 | منخفض | تناقضات طفيفة، IP مركز بيانات، أو زيارة أولى |
| 31-60 | متوسط | اكتشاف VPN، تلاعب بالمتصفح، أو سرعة غير معتادة |
| 61-80 | مرتفع | إشارات مخاطرة متعددة، وكيل + تلاعب، نشاط مرتفع |
| 81-100 | حرِج | اكتشاف روبوت، عُقدة خروج Tor، أو حالات شذوذ حادة |
تجمع الدرجة مخرجات إشارات Smart Signals النشطة — بشكل أساسي استخبارات IP (VPN/الوكيل/Tor/مركز البيانات)، وحكم الروبوت، والتلاعب بالمتصفح. التفاعل البشري المؤكد (الفأرة/لوحة المفاتيح) يخفّض الدرجة.
تُكتشف أربعة تكوينات متصفح مرتكزة على الخصوصية:
| المتصفح | طريقة الاكتشاف | العتبة |
|---|---|---|
| Tor Browser | حظر Canvas + حظر WebGL + منطقة UTC الزمنية + خطوط محدودة + حجم شاشة مُقرَّب | 3+ علامات |
| Brave | Brave UA أو navigator.brave أو علامة "Brave" في Client Hints | علامة 1+ |
| Firefox ETP (صارم) | تقسيم التخزين أو مقاومة Canvas (يتطلب Firefox UA) | علامة 1+ |
| Safari ITP | حظر ملفات تعريف الارتباط أو تقييد IndexedDB (يتطلب Safari UA) | علامة 1+ |
تصل إشارات Smart Signals إلى خادمك عبر حمولة الـ webhook (انظر Webhooks للاطلاع على الشكل الكامل والتحقق من التوقيع). تقرأ الأمثلة أدناه الحقول مباشرة من تلك الحمولة.
// `payload` is the webhook delivery body (/docs/webhooks)const score = payload.decision.riskScoreconst isVPN = payload.network.vpnconst isBot = payload.bot.result === "bot"
if (isBot) { return block("Automated access")}
if (score > 60) { return requireMFA()}
if (isVPN && score > 30) { return requireCaptcha()}
return allow()// `payload` is the webhook delivery body (/docs/webhooks)function computeFraudRisk(payload: WebhookPayload): string { let risk = "low"
if (payload.decision.suspectScore > 60) risk = "high" else if (payload.decision.suspectScore > 30) risk = "medium"
// Escalate when multiple network signals agree if (payload.network.vpn && payload.network.proxy) risk = "high" if (payload.network.tor) risk = "high" if (payload.bot.result === "bot") risk = "high"
return risk}