مشروع لاستخراج جميع عناوين البريد الإلكتروني بسرعة من أي ملفات في مسار معين
يهدف هذا المشروع إلى أن يكون إصدارًا جديدًا مفتوح المصدر لقاعدة التعليمات البرمجية الأساسية التي استخدمتها طوال الجزء الأكبر من العقد لاستخراج عناوين البريد الإلكتروني من خروقات البيانات قبل تحميلها في HIBP. تكون معظم الانتهاكات بتنسيق .sql أو .csv إما في ملف واحد أو ملفات متعددة داخل مجلد، ويتبع الاستخراج عملية بسيطة:
التعبير العادي الذي استخدمته هو كما يلي: b[a-zA-Z0-9.-_+]+@[a-zA-Z0-9.-_]+.[a-zA-Z]+b
يعد التحقق من صحة عنوان البريد الإلكتروني عبر التعبير العادي أمرًا صعبًا، ولكن ليس من الضروري أيضًا أن يكون مثاليًا لحالة الاستخدام هذه. تعتبر النتائج الإيجابية الكاذبة نادرة للغاية ويكون تأثيرها ضئيلًا، أي أنه يتم تحميل سلسلة ليست عنوانًا حقيقيًا في HIBP أو تحميل عنوان حقيقي بتنسيق غير عادي. بالنسبة للجزء الأكبر، يمكن تلخيص هذا التعبير العادي على أنه "أشياء على جانبي الرمز @ مع TLD من أحرف ألفا".
أدت المناقشة حتماً إلى الامتثال لـ RFC مقابل الاستخدامات العملية لأحرف معينة عند النظر في قواعد التحليل. هناك اعتباران أساسيان هنا:
وفقًا للروايات، نادرًا ما تكون النقطة 1 صحيحة مقارنةً بالنقطة 2. إن تأثير الرفض الخاطئ لعنوان شرعي متوافق مع المواصفات هو أنه لا ينتهي به الأمر إلى HIBP (أي تأثير منخفض). إن تأثير السماح بالعناوين غير الموجودة بالفعل هو إدخال السجلات غير المرغوب فيها إلى HIBP (تأثير منخفض أيضًا). خاصة عند النظر في احتمالية استخدام عنوان يحتوي على أحرف غامضة عمليًا (على سبيل المثال، قبوله في نموذج تسجيل وعدم رفضه)، فمن الأفضل رفض الأحرف التي من المحتمل أن تكون نتيجة لأخطاء التحليل.
من الناحية الواقعية، من غير المرجح أن يتم استخدام الأنماط الغامضة في عناوين البريد الإلكتروني
لقد تواصلت معي وطلبت الدعم وسأبدأ الأمور عبر شخص أو شخصين رئيسيين ثم أطلب مدخلات أوسع. أنا مهتم بشكل خاص بتحسين الخدمة عبر مجموعات البيانات الكبيرة والملفات غير النصية، خاصة مع زيادة عدد المستندات التي يتم التخلص منها بواسطة أطقم برامج الفدية. سأبدأ في إنشاء مشكلات للأجزاء التي تحتاج إلى بناء.
باستخدام مولد بيانات SQL الخاص بـ Red Gate، يتوفر ملف نموذجي يحتوي على 10 ملايين سجل لبيانات الاختراق النموذجية للتنزيل من Mega. يؤدي هذا الملف إلى استخراج 10 ملايين عنوان بريد إلكتروني بالضبط باستخدام الإصدار الحالي من هذا التطبيق. ملاحظة: ملف بيانات الاختبار موجود حاليًا في الإصدار الثاني، حيث أدى الإصدار السابق إلى أقل بقليل من 10 ملايين عنوان فريد بسبب وجود أنماط اسم نطاق غير صالحة.
بناء الجملة: AddressExtractor.exe -?
بناء الجملة: AddressExtractor.exe -v
بناء الجملة: AddressExtractor.exe <input [[... input]]> [-o output] [-r report]
خيار | وصف |
---|---|
-? ، -h ، --help | يطبع بناء جملة سطر الأوامر والخيارات |
-v ، --version | يطبع رقم إصدار التطبيق |
مدخل | واحد أو أكثر من أسماء الملفات أو الدلائل المدخلة |
-o ، --output الإخراج | مسار واسم ملف الإخراج. الإعدادات الافتراضية هي "addresses_output.txt" |
-r , --report التقرير | مسار واسم ملف التقرير. الإعدادات الافتراضية هي "report.txt" |
--recursive | قم بتمكين الوضع العودي للأدلة، التي ستقوم بالبحث في الأدلة الفرعية |
-y ، --yes | تأكيد المطالبات بالمتابعة تلقائيًا دون طلب ذلك |
-q ، --quiet | قم بالتشغيل بإسهاب أقل، ولا تظهر رسائل التقدم |
خيار | وصف |
---|---|
--debug | قم بتمكين وضع التصحيح للتحقق من الأداء الدقيق |
--threads عدد المواضيع | يستخدم مؤشرات ترابط متعددة مع قنوات للقراءة من الملفات. الافتراضي إلى 4 |
--skip-exceptions | يطالب تلقائيًا بالمتابعة عند حدوث استثناء |