
كاشف تسرّب الخصوصية في المتصفح — ثماني وحدات كشف، وتقييم للمخاطر، وسجل لكل حساب، كل ذلك داخل متصفحك.
كاشف تسرّب خصوصية المتصفح — ثماني وحدات كشف، وتقييم للمخاطر، وسجل لكل حساب، كل ذلك داخل متصفحك.
صُنع باستخدام Verdent — مساعد برمجة وكيلي. كل وحدة كشف، ولوحة التحليلات، وتدفق مصادقة مفاتيح API، والواجهة ثنائية اللغة، وصورة Docker الجاهزة لـ Kubernetes صُمّمت ونُفّذت في جلسات برمجة ثنائية بقيادة Verdent.
افتح رابطًا، وانقر تشغيل الكل، وخلال ثوانٍ يخبرك Leakish بما يسرّبه متصفحك عنك وعن شبكتك — عبر WebRTC، وواجهات البصمة، وDNS، وفحص من جانب الخادم. تُنتج الوحدات الثماني المستقلة كلٌّ منها نتيجةً محددة النوع + إشارات مخاطر، ودرجةً مجمّعة (0–100) ومستوى (safe / warning / critical).
يمكن للمستخدمين المسجّلين حفظ عمليات الفحص في MySQL، وتصفّح السجل، وفتح لوحة تحليلات تعرض مخططات التوزيع، وتكرار تجزئة البصمة، وخطًا زمنيًا لعناوين IP / ASN، وفحوصات شاذة، ومقارنة ثنائية. أما كل ما عدا ذلك (أداة الكشف نفسها) فيعمل بدون حساب — يمكن لأي شخص زيارة /app وتشغيل فحص.
| ID | الوحدة | ما يفحصه |
|---|---|---|
network-probe | فحص الخروج من الشبكة | عنوان IP العام الملاحَظ من الخادم، وASN، والدولة/المنطقة/المدينة، وعلامات VPN/وكيل/Tor/استضافة، وTLS/HTTP |
webrtc | WebRTC | IPv4 + IPv6 عام عبر STUN، تسريبات RFC1918، مرشّحات .local المموّهة عبر mDNS |
browser-fingerprint | بصمة المتصفح | UA، الشاشة، المنطقة الزمنية، الإضافات، أنوية المعالج، ذاكرة الجهاز، قائمة اللغات، DNT، ملفات تعريف الارتباط |
canvas-fingerprint | Canvas / WebGL | سلاسل العرض/المورّد لـ 2D + WebGL، وخصائص عرض النص غير المعتادة، وصيغ الصور المدعومة |
audio-fingerprint | الصوت | معدل عيّنات AudioContext، والقنوات، وزمن الوصول، وتجزئة مخرجات المذبذب |
font-detection | الخطوط | أكثر من 40 فحصًا للخطوط المسماة عبر كشف فرق العرض في Canvas |
dns | DNS | إمكانية الوصول إلى DoH، وإشارة DNSSEC، والموقع الجغرافي للمحلّل، وحدسيات تسريب DNS |
cdp-detection | الأتمتة / بدون واجهة | navigator.webdriver، وتوقيت CDP، وسطح API الخاص بـ Chromium فقط، وفحوصات المنافذ — درجة الثقة 0–1 |
تُسجَّل كل وحدة عبر واجهة واحدة محددة النوع DetectionModule<T> وتعمل بمعزل عن غيرها — تعذّر أي وحدة لا يؤثر على البقية. تُحفظ حالة التمكين لكل وحدة في localStorage مع مفتاح إصدار، وتستمر بعد تحديث الصفحة، وزر تشغيل الكل ينفّذ فقط الوحدات الممكّنة.
/api/detect/network لقراءة عنوان IP الذي رآه الخادم، أو (ج) تتواصل وحدة DNS مع https://dns.google/resolve.leakish.locale، وتتحكم في <html lang>، وبيانات الصفحة الوصفية، وكل شاشة، وكل استجابة خطأ من API، وبريد تسجيل الدخول عبر الرابط السحري.det_… من صفحة التكاملات (يُخزَّن SHA-256، ويُعرض النص الصريح مرة واحدة). يقبل كل مسار /api/detect/* إما ملف تعريف ارتباط للجلسة أو مفتاح Bearer، بحيث يمكن حفظ نفس الفحص من وظيفة CLI / CI./scans/analytics — مخططات توزيع عبر المنطقة الزمنية / المنصة / اللغة / الشاشة / WebGL / ASN / الدولة / عدد الخطوط، وتكرار تجزئة البصمة مع درجة مخاطر لكل نوع، وخط زمني لعناوين IP / ASN، وكاشف شذوذ متعدد المحاور، ومقارنة ثنائية بدرجة تشابه 0–100.lib/risk/assess.ts إشارات RiskSignal محددة النوع بمعرّفات ثابتة (مثل webrtc.public-ip-leak)، وملخصات لكل وحدة، ودرجة إجمالية واحدة. ويراعي اللغة عبر حقن Messages.POST /api/detect/scans ترويسة Idempotency-Key، ويحدّ أقصى عدد فحوصات لكل مستخدم بـ 200، ويحدّ معدل الحفظ بـ 10/ساعة.node:22-alpine، ومخرجات Next.js المستقلة، وتُنشر إلى Kubernetes عبر سير العمل في .github/workflows/.المتطلبات: Node 22+ (أي إصدار 20+ يكفي للتطوير المحلي)، وYarn 1.x، وخادم MySQL قيد التشغيل، و(اختياريًا) عميل Google OAuth.
yarn install
cp env.example .env.local # fill in DATABASE_URL, NEXTAUTH_SECRET, IP_HASH_SALT at minimum
yarn prisma:generate
yarn db:push # provision tables on a fresh DB
yarn dev # http://localhost:3000
الحد الأدنى من متغيرات البيئة لتسجيل دخول يعمل:
DATABASE_URL — مثل mysql://root:[email protected]:3306/detectNEXTAUTH_SECRET — openssl rand -base64 32NEXTAUTH_URL — http://localhost:3000 في بيئة التطويرIP_HASH_SALT — openssl rand -base64 32اختياري:
GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET لتسجيل الدخول عبر GoogleMAILGUN_API_KEY / MAILGUN_DOMAIN / EMAIL_FROM لتسليم الرابط السحري الفعلي (بدون هذه يُطبع الرابط في وحدة تحكم خادم التطوير)IPINFO_TOKEN لإثراء فحص الشبكة ببيانات ASN / VPN / الوكيلانظر env.example للحصول على القائمة الكاملة المشروحة.
| المسار | الغرض |
|---|---|
/ | صفحة هبوط تسويقية (واجهة أورورا، بطاقات المزايا، الأسئلة الشائعة، دعوة لاتخاذ إجراء) |
/app | أداة الكشف — قائمة الوحدات + لوحة النتائج + نظرة عامة |
/login | صفحة تسجيل دخول مستقلة (Google / البريد / مفتاح API) |
/scans | سجل الفحوصات المحفوظة للمستخدم المسجّل |
/scans/[id] | تفاصيل فحص محفوظ واحد |
/scans/analytics | التوزيع / التكرار / الخط الزمني / الشذوذ / المقارنة |
/integrations | إدارة مفاتيح API بصيغة det_… (إنشاء / إبطال / طريقة الاستخدام) |