تخطي إلى المحتوى
Tutorial

تحقق من رسائل البريد الإلكتروني المخترقة عند التسجيل دون تشغيل HaveIBeenPwned بنفسك

| 6 min read

احصل على بيانات الاعتماد المخترقة قبل تخزينها. استدعاء واحد لواجهة برمجة التطبيقات (API)، ومعالج مسار Next.js، ومدقق نموذج React Hook الذي يضيف 40 مللي ثانية إلى زمن استجابة التسجيل.

Login form on a screen representing signup flow and breach checks
Photo by Markus Spiske on Unsplash

يقوم المستخدم العائد بكتابة كلمة المرور المفضلة لديه في نموذج الاشتراك الخاص بك. تم تسريب كلمة المرور هذه في تفريغ AT&T لعام 2024، واختراق 23andMe لعام 2023، واستخراج قبو LastPass لعام 2022. تقوم بتخزين التجزئة، وتهنئ نفسك على bcrypt، وبعد ثلاثة أسابيع يدخل روبوت حشو بيانات الاعتماد إلى الحساب من وكيل سكني في البرازيل.

الإصلاح رخيص. يخبرك استدعاء واجهة برمجة التطبيقات (API) عند التسجيل ما إذا كان البريد الإلكتروني يظهر في مجموعات الاختراق المعروفة. استخدم هذه الإشارة لفرض MFA، أو طلب كلمة مرور أقوى، أو إسقاط التسجيل في قائمة انتظار المراجعة. يعرض هذا المنشور نقطة النهاية، ومعالج مسار Next.js، ومدقق نموذج React Hook الذي يضيف حوالي 40 مللي ثانية إلى زمن استجابة التسجيل.

لماذا يجب التحقق من الانتهاك عند الاشتراك، وليس لاحقًا

ينجح حشو بيانات الاعتماد لأن 65% من المستخدمين يعيدون استخدام كلمات المرور عبر المواقع (Google/Harris 2019، تم تكرارها في استطلاع Bitwarden لعام 2023). إن البريد الإلكتروني المرتبط بـ 14 انتهاكًا سابقًا لا يعد عينة عشوائية من الإنترنت؛ إنه مستخدم قام بتسليم نفس كلمة المرور إلى 14 بائعًا مختلفًا متسربًا. الاحتمال الهامشي أنهم كتبوا نفس الشيء في النموذج الخاص بك مرتفع.

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

استدعاء واحد لواجهة برمجة التطبيقات (API) وإشارتان

POST /v1/breach/check يقبل إما البريد الإلكتروني أو كلمة المرور. وهنا مكالمة البريد الإلكتروني.

ونموذج استجابة لعنوان يظهر في ثلاث مجموعات.

شيئان يستحقان الدعوة. breach_count و breaches توفر لك المصفوفة أسماء مجموعات البيانات والتواريخ وإجمالي أعداد السجلات؛ ولا يقومون بإرجاع كلمة المرور المكشوفة أو السجل المسرب الكامل أو أي معلومات تحديد هوية شخصية تتجاوز ما أرسلته. password_exposed يتم ملؤها فقط عند تمرير أ password الحقل في نص الطلب. للتسجيل، البريد الإلكتروني وحده يكفي لتصنيف المخاطر.

واجهة برمجة التطبيقات k-anonymity API الخاصة بـ HaveIBeenPwned مجانية للاستخدام الشخصي وممتازة لعمليات البحث عن بادئة كلمة المرور. على نطاق الإنتاج، تدفع 3.50 دولارًا شهريًا لكل مفتاح وتحافظ على معالجة بادئة SHA-1 بالإضافة إلى حدود الأسعار من جانب العميل. تقوم نقطة نهاية botoi بتغليف تلك السباكة وتضيف تخزينًا مؤقتًا للحافة ومصادقة موحدة مع بقية واجهة برمجة التطبيقات وفاتورة واحدة.

معالج المسار Next.js

ضع المكالمة خلف المسار الخاص بك حتى يبقى مفتاح API على الخادم. تحقق من صحة الإدخال باستخدام Zod، وأضف مهلة AbortController تبلغ 300 مللي ثانية، وفشل في الفتح عند حدوث أخطاء في المنبع، لذا فإن فحص الاختراق البطيء لا يمنع أي اشتراك حقيقي.

بعض خيارات التصميم تستحق التسمية. المهلة ضيقة (300 مللي ثانية) لأن استجابة P95 تبلغ 120 مللي ثانية وأي شيء أبطأ يعتبر عابرًا؛ يعود فرع الفشل المفتوح risk: 'low' لذلك لا يمكن لطرف ثالث غير مستقر إزالة نموذج الاشتراك الخاص بك. ال tier() إن الوظيفة هي المكان الوحيد الذي تعيش فيه سياسة المخاطر، مما يجعل من الصعب إعادة ضبطها لاحقًا.

أداة التحقق من صحة نموذج React Hook من جانب العميل

ارتداد بمقدار 500 مللي ثانية حتى لا تطلق طلبًا عند كل ضغطة على المفتاح. لا تحجب زر الإرسال في النتيجة؛ أظهر تحذيرًا وقم بالتبديل المسبق لـ MFA بدلاً من ذلك. تحويل التحذيرات؛ الكتل الصلبة تفقدك المستخدم.

قم بتوصيل الخطاف إلى مكون React Hook Form. ال watch يقوم الاتصال بتغذية البريد الإلكتروني في الخطاف، وتقوم النتيجة بالتحقق مسبقًا من مربع MFA بحثًا عن العناوين المخترقة.

ماذا تفعل بالنتيجة

ترجمة عدد الانتهاك إلى سياسة. ابدأ بهذا الجدول وقم بضبطه بمجرد أن يكون لديك أسبوعين من الاشتراكات متأخرة عن التسجيل.

عدد المخالفات فعل تجربة المستخدم لماذا
0 يتابع لا تغيير لا يوجد دليل عام على التسوية المسبقة؛ المسار الافتراضي.
1-3 وزارة الخارجية موجه حدد مربع MFA مسبقًا، وأظهر تحذيرًا بسيطًا من الشائع إعادة استخدام كلمة مرور واحدة لكل خرق؛ دفع المستخدم لحماية الحساب الجديد.
4-10 فرض MFA + كلمة مرور قوية يلزم التسجيل في TOTP قبل تسجيل الدخول لأول مرة، بحد أدنى 14 حرفًا يشير التعرض المتكرر إلى أن البريد الإلكتروني موجود في كل قائمة بيانات اعتماد رئيسية؛ كلمة المرور الضعيفة هنا هي عملية استحواذ تنتظر حدوثها.
10+ كتلة ناعمة مع الاحتكاك أضف كلمة التحقق أو أرسلها إلى المراجعة اليدوية هذا البريد الإلكتروني عام بشكل فعال. قم بزيادة تكلفة المهاجم قبل إنشاء حساب عليه.

قم بتجميعها مع فحصين إضافيين لأقل من 120 مللي ثانية

إن فحص الخرق وحده يتعرف على مخاطر إعادة استخدام كلمة المرور. إقرانها مع /v1/disposable-email/check لوضع علامة على مجالات البريد المؤقت و /v1/vpn-detect لوضع علامة على مركز البيانات أو عناوين IP لمصدر Tor، ولديك بطاقة أداء ثلاثية الإشارات تعمل بالتوازي بأقل من 120 مللي ثانية على P95. نمط التسجيل الكامل (الأوزان والعتبات وتسجيل التدقيق) موجود أوقف الاحتيال في عملية التسجيل من خلال 3 عمليات فحص لواجهة برمجة التطبيقات (API)..

احصل على مفتاح API مجاني على botoi.com/api/signup. تغطي الطبقة المجانية 1000 فحص خرق يوميًا (5 طلبات/دقيقة متتابعة)، وهو ما يكفي لبرنامج SaaS صغير أو لإعادة تشغيل آخر 30 يومًا من الاشتراكات من خلال نقطة النهاية ومعايرة المستويات أعلاه ضد البيانات المخالفة وإساءة الاستخدام.

مرجع نقطة النهاية الكامل: خرق التحقق من API.

FAQ

هل يؤدي هذا إلى تسريب عناوين البريد الإلكتروني إلى botoi؟
يصل البريد الإلكتروني إلى واجهة برمجة التطبيقات (API) عبر TLS ويتم استخدامه فقط لحساب تطابق الاختراق. لا تستمر نصوص الطلب في سجلات الوصول؛ يتم الاحتفاظ بالطريقة والمسار والحالة ووقت الاستجابة لمدة 30 يومًا فقط. راجع مستندات API للحصول على بيان معالجة البيانات الكامل.
ما هو الكمون النموذجي؟
متوسط ​​وقت الاستجابة هو 40 مللي ثانية من عقدة Cloudflare Workers edge، و120 مللي ثانية عند النسبة المئوية 95. يقوم المعالج الموجود في هذا المنشور بتعيين مهلة AbortController تبلغ 300 مللي ثانية، لذا لا يمكن لمكالمة بطيئة أن تمنع نموذج التسجيل الخاص بك.
ما مدى حداثة مجموعة بيانات الانتهاك؟
تتم مزامنة مجموعة البيانات أسبوعيًا من عمليات التفريغ العامة (الانتهاكات التي تم تتبعها بواسطة HIBP، وقوائم حشو بيانات الاعتماد، والمجموعة رقم 1 إلى رقم 5). تظهر المجموعات الجديدة في غضون 7 أيام من الكشف العلني.
هل يمكنني التحقق من كلمات المرور مباشرة؟
نعم. قم بنشر بادئة SHA-1 (أول 5 أحرف سداسية عشرية) أو كلمة مرور النص العادي إلى نفس نقطة النهاية. يعد نموذج البادئة أكثر أمانًا للمتصلين من جانب العميل لأن التجزئة الكاملة لا تترك المتصفح أبدًا. استخدم النص العادي فقط من الخادم الخاص بك.
هل هذا متوافق مع اللائحة العامة لحماية البيانات؟
التحقق من الانتهاك هو إجراء أمني بموجب المادة 32 من اللائحة العامة لحماية البيانات (أمن المعالجة). قم بتوثيق عملية التحقق في سجلات أنشطة المعالجة الخاصة بك، وقم بإدراج botoi كمعالج في DPA الخاص بك، ولاحظ الأساس القانوني (المصلحة المشروعة في منع الاستيلاء على الحساب).

ابدأ البناء مع botoi

أكثر من 150 نقطة نهاية API للبحث ومعالجة النصوص وتوليد الصور وأدوات المطورين. باقة مجانية، بدون بطاقة ائتمان.