هل انت انسان؟(أو كيفية منع البريد العشوائي) [مغلق]

StackOverflow https://stackoverflow.com/questions/42076

  •  09-06-2019
  •  | 
  •  

سؤال

ما هي الآليات التي تعرفها والتي تمنع إساءة استخدام موقعك من قبل مرسلي البريد العشوائي المجهولين؟

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

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

المحلول

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

هذا لا يعني أنه لا يمكنك أو لا ينبغي عليك استخدام شيء مثل أداة captcha المعدة مسبقًا.بالتأكيد استخدم واحدًا من هؤلاء كنقطة انطلاق!هذا يعني فقط أنه يتعين عليك تخصيصه في مكان ما حتى يحدث شيء إضافي خارج عن القاعدة وسيؤدي إلى كسر أي نص موجود مسبقًا يمكنه التغلب عليه بشكل طبيعي.

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

نصائح أخرى

alt text

من xkcd

بالنسبة لنظام CAPTCHA، أوصي به بشدة reCAPTCHA.

سوف تقوم اختبارات CAPTCHA التقليدية التي يتم إنشاؤها بواسطة الكمبيوتر في نهاية المطاف تكون مكسورة من خلال تطوير نظام ذكي بما فيه الكفاية.على سبيل المثال، هنا شخص ما الذي يدعي أنه يخترق اختبار Google CAPTCHA، الذي كان يعتبر سابقًا غير قابل للاختراق، بمعدل نجاح يصل إلى 30%.reCAPTCHA، حسب التعريف، يعرض لك فقط الصور التي لا يمكن التعرف عليها من خلال التعرف البصري على الأحرف.

وفي الوقت نفسه، سيتم توجيه جهود المستخدمين نحو الصالح العام - فهم يساعدون في رقمنة الكتب من خلال التعرف على الكلمات التي لا يمكن التعرف عليها تلقائيًا.

يرى هنا لمزيد من التوضيح وتجربته.

  • تحديد عدد الأصوات لكل عنوان IP في كل مرة
  • منع وكلاء إخفاء الهوية.
  • للتصويت:ماذا عن خلط القيمة التي يجب أن يُرجعها النموذج "على أساس كل جلسة".بمجرد أن يعني "1" العنصر الأول، فإن "2" يعني العنصر الثاني.ثم "77" تعني العنصر الأول، و"812" تعني الثاني، ...يمكن أن تكون هناك بعض العمليات الحسابية البسيطة خلف الكواليس، ولكنها تمنع المستخدمين من إرسال نفس استعلام HTTP مرارًا وتكرارًا.
  • ما نجح بالنسبة لي بشكل جيد للغاية:استخدم نماذج AJAX، وليس نماذج HTTP البسيطة.من الناحية الفنية، ليس الأمر أكثر تعقيدًا بكثير بالنسبة لتزوير الأصوات، ولكنني كتبت برنامج مدونة بسيط وآلية الحماية من الرسائل الاقتحامية الوحيدة هي إرسال التعليقات عبر AJAX - لا توجد رسائل غير مرغوب فيها حتى الآن.

أنا من محبي اختبار CAPTCHA "الحقل المخفي".لا أذكر أين قرأت عنها، لكن الفكرة هي كما يلي:

  • قم بإنشاء النموذج الخاص بك كالمعتاد
  • أضف حقلاً إضافيًا ولكن قم بإخفائه (أي style="display:none" على div المحيط أو صف الجدول)
  • بعد الإرسال، إذا كان الحقل فارغًا، فقم بالإجراء المناسب (على سبيل المثال، إرسال بريد إلكتروني)؛إذا تم ملء الحقل، فهو مقدم روبوت

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

قم بتحصيل رسوم مقابل الأصوات، مثلما يفعلون في بعض برامج "المواهب" التليفزيونية، وستصلك رسائل غير مرغوب فيها طوال الطريق إلى البنك!

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

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

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

هذه هي منطقة الدراسة الحساب البشري.

يوجد فيديو ممتاز من Luis von Ahn هنا:http://video.google.com/videoplay?docid=-8246463980976635143

هناك بعض الأفكار في الإجابات على أفضل اختبار CAPTCHA غير القائم على الصور؟ السؤال إذا لم تكن قد رأيت ذلك بالفعل.

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

في عملية التسجيل، اعتمادًا على الموقف، أستخدم خيار الاشتراك عبر البريد (لإكمال التسجيل والتأكيد على وجود صندوق البريد على الأقل) و/أو اختبار CAPTCHA.

من تلك النقطة فصاعدا يمكنك أن تقرر ما إذا كان يمكن للمستخدم التصويت أكثر من مرة، أو أي قاعدة أخرى.

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

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