Protecting against gmail dot trick in Discourse

My forum just receive a large number of spaming user registration.
He/She using Gmail dot tricks ( http://www.makeuseof.com/tag/1-awesome-gmail-tip-you-dont-know-about-seriously/) to create this large number of email account.

Can you prohibid this trick ?

My discourse is using Cloudflare at a CDN and DNS provider, Discourse can’t work fine caused the IP thing.

Couldn’t you ban their IP instead?

Hum, I’m using Cloudflare for CDN, and discourse only see Cloudflare, not user’s IP. (in Wordpress, Cloudflare has an plugin to pass the user IP to website)

3 إعجابات

At vB we used to get literally thousands of bot “seed” accounts like
aliasg.maila.ccount
alia.sgmai.laccount
ali.asg.mailacco.unt
alias.g.m.ailaccount
al.iasgmai.lacc.ount
… etc. ad nauseum

We eventually had a plugin written to deal with them

إعجاب واحد (1)

Yeah you’re going to need to turn that off, or figure out how to get CloudFlare to send proper headers for the passthrough IP.

إعجاب واحد (1)

Yes. I’m working on that by config Nginx.
Cloudflare actually sends user’s IP via header HTTP_CF_CONNECTING_IP

But prohibid gmail dot trick is useful too.

إعجاب واحد (1)

You really need to get IP passed through correctly otherwise you are really screwed. That’s about the only effective way to stop spammers, if they are clever.

إعجاب واحد (1)

While in this case banning the IP is the right thing to do, I think there is merit in being able to stop user.name@gmail.com and username@gmail.com from being both registered as two different users at any given discourse forum.

No sane administrator should allow this behaviour (from gmail) and maybe we could have an option to extend this prohibition to other email providers as well.

It would need a simple list like ‘@gmail.com’, ‘@anotherprovidder.com’ and then it would check for registered users by removing the dot or any other relevant character (could have a list as well) to avoid users that want to have two or more accounts.

Maybe a plugin with this functionality would be the best solution.

5 إعجابات

Definitely make it optional if you do it at all. I depend on this trick for troubleshooting!

3 إعجابات

نحن غارقون تمامًا في هذه الأنواع من التسجيلات والرسائل المزعجة التي ينشرونها. :man_supervillain:

mycoolgmailaddress4spam+unlimitedcombinationslol@gmail.com
m.ycoo.lgm.ailaddress4s.pam@gmail.com

لسوء الحظ، نحن عاجزون أمام هذه التسجيلات. والدفاع الوحيد هو عدم استهدافنا من قبل مرسلي الرسائل المزعجة الذين يمتلكون أي مهارة.

لا توجد طريقة موضوعية لمنع مرسلي الرسائل المزعجة الذين يمتلكون عناوين IP كافية من إنشاء 100,000 حساب باستخدام عنوان Gmail واحد على أي منتدى قياسي يستخدم Discourse باستخدام هذه الحيل.

جميع إعدادات throttling للرسائل المزعجة أو النشر عديمة الجدوى عندما يكون لدى مرسلي الرسائل المزعجة وصول إلى عدد غير محدود من الحسابات باستخدام عنوان Gmail واحد.

من الغريب أن موقعك يعاني من مشكلة خطيرة كهذه، بينما لا أستطيع أن أتذكر حتى مرة واحدة حدث فيها ذلك بين عملائنا المضيفين البالغ عددهم حوالي 1000+ خلال السنوات الأربع الماضية؟

@codinghorror هل تعزو ذلك إلى دفاعات كافية ضد هذه التقنية الشائعة من قبل مرسلي البريد المزعج، أم لأن هذه المواقع ليست مستهدفة من قبلهم؟ هل تتلقى هذه المواقع أحجامًا كبيرة بانتظام من محاولات تسجيل بريد مزعج من أي نوع يتم حظرها بواسطة الدفاعات؟

يعتمد الأمر بشكل كبير على المجال، وحجم الزيارات، وما إذا كان مناسبًا لحملاتهم الإعلانية المباشرة. فمرسل البريد المزعج الذي يستطيع إبقاء منشوراته في أعلى قائمة المنشورات يحصل فعليًا على مساحة إعلانية ممتازة مقابل بضع سنتات. فمساحة الإعلان في الصفحة الرئيسية فوق الطية (above the fold) يمكن أن تساوي عادةً من 100 إلى 10,000 دولار في اليوم، اعتمادًا على المجال وحجم الزيارات.

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

أنا أدير عدة منتديات أخرى تعمل بنظام Discourse منذ عامي 2015-2016، ولا تواجه تقريبًا أي مشاكل تتعلق بتسجيلات أو منشورات بريد مزعج، وذلك لأنها ليست مستهدفة. عدم التعرض للاستهداف من قبل مرسلي البريد المزعج يُعد دفاعًا جيدًا، إلى أن تصبح مستهدفًا. إلى حد ما، لا يدعم Discourse افتراضيًا في معظم برمجيات إرسال البريد المزعج المتاحة تجاريًا، مثل Xrumer، حسب علمي.

حسناً، هناك قاعدة أحب الاستشهاد بها.

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

5 إعجابات

صحيح، فمُرسِل الرسائل المزعجة المتخصص سيجد دائمًا طريقة للالتفاف. لقد رأيناهم يفتحون خوادم بريد إلكتروني خاصة بهم ويولّدون آلاف عناوين البريد الإلكتروني - تحديًا صعبًا حقًا.

ومع ذلك، ألا يبدو منع التسجيلات المكررة باستخدام هذه الحيل الخاصة بـ Gmail إجراءً احترازيًا معقولاً؟

إعجابَين (2)

@codinghorror - هههه، أعجبتني الفكرة. لكنني أفضل ألا أستسلم وأستسلم للموت بسهولة. :man_cartwheeling: لا أعتقد أن هذه حالة هامشية، فالكثير من المواقع الاجتماعية لا تسمح بالتسجيل باستخدام نفس عنوان Gmail بسبب إساءة استخدام المرسلي البريد المزعج. معظم المواقع الكبيرة، حسب علمي، لا تسمح بذلك.

@bartv - نعم، بالنسبة لتلك التي تمتلك خوادم بريد خاصة بها، يمكننا على الأقل حظر نطاقاتها كدفاع فعال إلى حد ما (على الرغم من أن الحسابات التي نجحت قبل الحظر لا تزال قابلة للاستخدام). يمكنهم الحصول على نطاقات أخرى، لكن هذا على الأقل يكلفهم موارد - على عكس حيل Gmail.

مع هذه الحيل الخاصة بـ Gmail، لا يوجد حقًا أي دفاع، وتكلفة الإضافات المختلفة للعنوان لا تكلف المرسلي البريد المزعج شيئًا. يمكن أن تساعد مسافة ليفنشتاين في رسائل البريد المزعج إلى حد ما مع حيلة النقطة بعد حظر نفس عنوان Gmail في مجموعات مختلفة من النقاط مرات عديدة. لكن لا يمكنني حاليًا الدفاع ضد حيلة الزائد (+)، والتي تسمح تقريبًا بعدد غير محدود من التوليفات.

ما لم تكن لديك أصدقاء أقوياء بما يكفي لمساعدتك. وهذا ينطبق على فريق تطوير Discourse هنا (وربما المجتمع إذا فكرنا في الإضافات).

أعتذر، لكن ألا سيكون من الجيد أن يعامل Discourse جميع عناوين Gmail دون النقاط وما يأتي بعد علامة +؟ لا يبدو ذلك معقدًا تقنيًا. إنه مجرد بضعة أسطر بسيطة من الكود. التسجيل => يكتشف gmail.com بعد علامة @ => يزيل كل النقاط وما يأتي بعد علامة + حتى علامة @، ويستخدم هذا العنوان => هل هو مستخدم بالفعل؟ => يعيد رسالة خطأ “عنوان البريد الإلكتروني مستخدم بالفعل”.

تم. أم أنني أفتقد شيئًا؟
إذا بدأ المزعجون في معرفة أن هذا يعمل مع Discourse، فسوف يستهدفون المزيد والمزيد من منتديات Discourse بهذه التقنية. أعني، لماذا لا يفعلون ذلك؟

إعجابَين (2)

قمنا بضبط النظام بحيث يجب الموافقة يدويًا على جميع الموضوعات/المشاركات من المستخدمين الجدد لأول X مرة، مما قضى على المشكلة تقريبًا بين ليلة وضحاها. بعض الحلول نجحت في تعديل مشاركتهم بعد ذلك، حتى قمنا بتعديل ذلك لمستوى الثقة 0/1 أيضًا.

بينما لا يرتبط هذا بأي خدعة محددة لمجال معين، إلا أنه يعطل المشكلة الفعلية، وهي شخص متحمس يحاول التحايل على تدابيرك المضادة. إذا لم يتمكنوا من استخدام خدعة “gmail”، فسيجدون خدعة أخرى. مستوى الثقة 1 يسمح بالنشر، ومستوى الثقة 1 يتطلب 5 دقائق من وقت القراءة هو النوع الذي أميل إليه شخصيًا.

6 إعجابات

حسنًا، لنرَ. ما هي الأحرف التي يمكن استخدامها هنا؟

تدعم بعض خدمات البريد علامة تُدرج في الجزء المحلي من العنوان، بحيث يكون العنوان بديلاً لبداية الجزء المحلي. على سبيل المثال، يُشير العنوان joeuser+tag@example.com إلى نفس عنوان التسليم مثل joeuser@example.com. يُطلق RFC 5233 على هذه العادة اسم “العنوان الفرعي”، لكنها تُعرف أيضًا بـ “العنوان الموجّه بعلامة زائد”، أو “العنوان الموسوم”، أو “إضافات البريد”.

تُدعم عناوين بهذا الشكل، باستخدام فواصل مختلفة بين الاسم الأساسي والعلامة، من قبل العديد من خدمات البريد الإلكتروني، بما في ذلك Runbox (علامة زائد)، وGmail (علامة زائد)، وRackspace Email (علامة زائد)، وYahoo! Mail Plus (شرطة)، وApple’s iCloud (علامة زائد)، وOutlook (علامة زائد)، وProtonMail (علامة زائد)، وFastMail (علامة زائد وعنوان نطاق فرعي)، وMMDF (علامة يساوي)، وQmail، وCourier Mail Server (شرطة). يسمح Postfix وExim بتعيين فاصل عشوائي من مجموعة الأحرف القانونية.

إذن لدينا: علامة الزائد (+)، والشرطة (-)، وعلامة التساوي (=)، والنقطة (.)، وعلامة الرطل/الهاشتاغ (#).

الشيء الوحيد الذي يمكنني التفكير فيه والذي قد يعمل هنا هو إعداد صارم للغاية لمنع جميع الأحرف خارج نطاق A-Z وa-z و0-9 في عناوين البريد الإلكتروني.

سيمنع هذا بالتأكيد بعض المستخدمين من التسجيل، لكن قد يكون ذلك مقايضة مقبولة إذا كنت… آه… مستهدفًا من قبل عملاء موساد نخبة، أظن ذلك :male_detective:

ما رأيك @eviltrout؟

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

4 إعجابات

نعم، أنا أفضل التغيير الذي اقترحه بارت هنا.

[ ] استخدام صيغة قياسية لتخزين عناوين البريد الإلكتروني داخليًا (يزيل +أي شيء، ويحذف التعليقات وما إلى ذلك).

يوفر هذا مكتبة بلغة Ruby يمكننا الاستعانة بها، لكننا سنحتاج إلى الحذر الشديد جدًا جدًا (المثال الأول يمثل خطرًا أمنيًا وفقًا لـ: https://stackoverflow.com/a/52125295/17174)

EmailAddress.canonical("(test)sam.saffron(test)+100@gmail.com")
=> "test@gmail.com"
[3] pry(main)> EmailAddress.canonical("sam.saffron(test)+100@gmail.com")
=> "samsaffron(test)@gmail.com"
[4] pry(main)> EmailAddress.canonical("sam.saffron+100@gmail.com")
=> "samsaffron@gmail.com"

لذا، أقترح أن يقوم «تطبيعنا» (canonicalize) بما يلي:

  1. إزالة +أي شيء

  2. التحويل إلى أحرف صغيرة (نحن نطبق هذا بالفعل)

  3. إذا كان النطاق Gmail أو Googlemail أو مدرجًا في القائمة البيضاء المخصصة، فاحذف النقاط.

  4. إزالة التعليقات (...) والتي تُعد أيضًا وسيلة لإساءة الاستخدام.

  5. تطبيع العنوان وفقًا لمعيار Unicode، وهو مسموح تقنيًا وفقًا لـ: Email address - Wikipedia

ثم أضف إعدادًا مخفيًا للموقع يتضمن قائمة بيضاء للنطاقات التي يُسمح فيها بإزالة النقاط.

ومع ذلك، هناك طرق كثيرة لإساءة استغلال هذا، بل إن شخصًا ما قد يكون لديه مخزن من 10,000 عنوان بريد إلكتروني مزعج على Gmail ويسجل الدخول بها جميعًا باستخدام نوع ما من البوتات. إذا كنت مستهدفًا، فربما يكون من الأفضل الموافقة على كل تسجيل جديد لفترة من الوقت؛ ربما تكون هذه واحدة من الحالات النادرة التي ترغب فيها في إضافة reCAPTCHA عند التسجيل عبر إضافة (plugin).

إعجابَين (2)