سؤال

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

المنتدى هو الكود الخاص بي بالكامل.إنه مبني في PHP و MySQL.

ما هي بعض الطرق الملموسة لوقف البريد العشوائي؟

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

هل كانت مفيدة؟

المحلول

في تطبيق سجل الزوار الذي كتبته، قمت بتطبيق ميزتين تمنعان معظم البريد العشوائي:

  • لا تسمح بـ POST كأول طلب في الجلسة

  • يلزم وجود مُحيل HTTP صالح عند النشر

نصائح أخرى

إحدى الطرق التي أعرف بها أي الطرق تعمل هي استخدام JavaScript قبل إرسال النموذج.على سبيل المثال، لتغيير الطريقة من GET إلى POST.؛) روبوتات السبام رديئة في تنفيذ JavaScript.وبطبيعة الحال، هذا يعني أيضًا أن الأشخاص الذين لا يستخدمون جافا سكريبت لن يتمكنوا من استخدام موقعك...إذا كنت تهتم بهم فهذا هو.؛) (ملحوظة:أنا لا)

في تجربتي، أفضل الدفاعات السهلة تأتي من مجرد القيام بشيء "غير قياسي".إذا جعلت موقعك غير قياسي، فإن هذا يجعل أي بريد عشوائي آلي يجب أن يتم ترميزه خصيصًا لموقعك، الأمر الذي (بدون أي إساءة) ربما لا يستحق كل هذا الجهد.لاحظ أنه إذا كان البريد العشوائي يأتي من مرسلي البريد العشوائي البشري، فليس هناك حقًا أي شيء يمكنك القيام به لن يؤدي أيضًا إلى إيقاف الملصقات المشروعة.لذا فإن الهدف هو إيجاد حل من شأنه التخلص من أي مشاركات "قياسية" - أي "ملء النموذج بالكامل ثم إرساله".

بعض الأمثلة التي تتبادر إلى ذهنك عن الأشياء التي يمكنك تجربتها:

  • احصل على حقل نموذج مخفي باسم يبدو وكأنه شيء يريد مرسلي البريد العشوائي تعبئته، مثل "موقع ويب" أو "الصفحة الرئيسية" أو شيء من هذا القبيل.إذا تم ملء حقل النموذج، فقم برمي الرسالة بدلاً من نشرها، لأنه كان عبارة عن روبوت يملأ النموذج بالكامل تلقائيًا، حتى الحقول غير المرئية.
  • ليس عليك استخدام كلمة التحقق "الحقيقية"، ولكن حتى شيئًا بسيطًا مثل "أدخل الكلمة التالية بشكل عكسي:<كلمة عشوائية معكوسة>" أو "ما هو اسم المجال لهذا الموقع؟".من السهل على الإنسان القيام بذلك، ولكنه يتطلب روبوتًا معقدًا إلى حد ما لمعرفة ما يجب ملؤه.

يمكنك استخدام كلمة التحقق، وهناك بعض النصوص الجيدة مثل PHPCaptcha أو استخدم خدمة التحكم في البريد العشوائي، مثل أكيسميت, ، لديهم PHP API.

قد ترغب في إلقاء نظرة على هذا السؤال, ، والتي تحتوي على العديد من الإجابات التي تصف كيف يمكنك تنفيذ كلمة التحقق غير التدخلية.

شيء آخر يجب مراعاته هو تخصيص وقت بين المشاركات لمنع إرسال رسائل غير مرغوب فيها على نطاق واسع.

قم بتضمين اختبار CAPTCHA الذي يكون دائمًا باللون "البرتقالي".

قد تكون الرسائل غير المرغوب فيها بواسطة الروبوتات أو البشر - من المرجح أن تكون الروبوتات.

لإيقاف برامج الروبوت، ضع حقلًا مخفيًا مملوءًا بجافا سكريبت - هناك احتمال بنسبة 99.5% أن يفشل برنامج روبوت قياسي غبي لم يتم تخصيصه لموقعك في ملء هذا الحقل.

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

لا تهتم بإدراج عناوين IP في القائمة السوداء أو استخدام قوائم سوداء تابعة لجهات خارجية، فهذا لن يؤدي إلا إلى توليد نتائج إيجابية كاذبة.تستخدم جميع برامج الروبوت تقريبًا نفس عناوين IP التي يستخدمها (بعض) المستخدمين الشرعيين.


هناك خدعة أخرى وهي وضع حقل نصي باسم يبدو معقولًا، وهو ما يصعب رؤيته باستخدام CSS - أي شخص يملأ هذا الحقل بأي شيء يعتبر روبوتًا.

الحلول المتقدمة:

يمكنك تجربة حظك باستخدام نموذج غير قياسي:

  • الحقول التي يجب أن تظل فارغة مخفية باستخدام CSS
  • الحقول ذات الأسماء المضللة، على سبيل المثال. <input name=email> لشيء ما لا بريد الكتروني.

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

شيء وجدته فعالاً بشكل مدهش:عدم السماح بالتعليقات التي تحتوي على عدد كبير جدًا من عناوين URL (أكثر من 5 مثلاً).منذ القيام بذلك، لم يكن لدي أي تعليق غير مرغوب فيه.

يحرر: منذ أن كتبت ما ورد أعلاه، تلقيت تعليقات غير مرغوب فيها متكررة تحتوي على رابط واحد فقط.لقد أضفت الآن بعض حقول مصيدة العسل ولم يكن لدينا أي رسائل غير مرغوب فيها جديرة بالثناء لبضعة أشهر حتى الآن.

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

من المؤكد أن Captcha هي الطريقة الأسهل - جرب KittenAuth إذا كنت تريد شيئًا مقاومًا للروبوتات (على الرغم من أنني حصلت على حيوانات الباندا هذه المرة)

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

أريد أن أقول أنه في معظم الأوقات، يكون اختبار CAPTCHA كافيًا لمنع مرسلي الرسائل الاقتحامية (SPAM).ولكن استخدم واحدة قوية، مثل http://www.captcha.net/.

تذكر أن مرسلي الرسائل الاقتحامية (SPAM) لا يريدون قضاء الكثير من الوقت للتعامل مع موقع معين (باستثناء المواقع ذات الزيارات الكثيفة)، فهم يستخدمون أداة لنشر الإعلانات على الكثير من المواقع.لذا اجعل النموذج الخاص بك غير عادي بعض الشيء، (على سبيل المثال:امنح المستخدم صورة تقول "1.5 + 2.4 =؟" واسمح للمستخدمين بالإجابة ، سيؤدي ذلك إلى حظر معظم أدوات البريد العشوائي :))

أسهل شيء قمت به لإيقاف مرسلي الرسائل غير المرغوب فيها (حتى الآن) بنسبة 100% هو التحقق من صحة النص الذي تم إرساله.إذا كنت تستخدم وظيفة php strstr() للتحقق من "a href" أو حتى http أو www غير القابل للنقر، فيمكنك بعد ذلك إعادة توجيه مرسل البريد العشوائي إلى مكان آخر.لدي بالفعل برنامج نصي ثم أكتب إلى ملف .htaccess الخاص بي لرفض عنوان IP المخالف.لست متأكدًا مما إذا كان هناك أي نوع آخر من البريد العشوائي يدعو للقلق، ولكن الروابط هي كل ما رأيته حتى الآن.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top