व्यावहारिक गैर-छवि आधारित कैप्चा दृष्टिकोण?


318

ऐसा लगता है कि हम स्टैक ओवरफ्लो में कैप्चा समर्थन जोड़ रहे हैं । बॉट्स, स्पैमर और अन्य दुर्भावनापूर्ण स्क्रिप्ट गतिविधि को रोकने के लिए यह आवश्यक है। हम केवल यही चाहते हैं कि इंसान यहाँ चीजों को पोस्ट या एडिट करे!

हम एक जावास्क्रिप्ट (jQuery) कैप्चा का उपयोग रक्षा की पहली पंक्ति के रूप में करेंगे:

http://docs.jquery.com/Tutorials:Safer_Contact_Forms_Without_CAPTCHAs

इस दृष्टिकोण का लाभ यह है कि, ज्यादातर लोगों के लिए, कैप्चा कभी दिखाई नहीं देगा!

हालांकि, जावास्क्रिप्ट अक्षम लोगों के लिए, हमें अभी भी एक गिरावट की आवश्यकता है और यह वह जगह है जहां यह मुश्किल हो जाता है।

मैंने ASP.NET के लिए एक पारंपरिक कैप्चा नियंत्रण लिखा है जिसका हम फिर से उपयोग कर सकते हैं।

CaptchaImage

हालाँकि, मैं प्रत्येक अनुरोध के साथ सर्वर पर इन सभी छवियों को बनाने के ओवरहेड से बचने के लिए कुछ पाठ्य के साथ जाना पसंद करूंगा।

मैंने चीजों को देखा है ..

  • ASCII पाठ कैप्चा: \/\/(_)\/\/
  • गणित की पहेलियाँ: 7 मिनट 3 बार 2 क्या है?
  • सामान्य ज्ञान के प्रश्न: क्या बेहतर स्वाद, एक toad या एक popsicle?

हो सकता है कि मैं यहाँ पवन चक्कियों पर झुक रहा हूँ, लेकिन <noscript>यदि संभव हो तो मैं एक कम संसाधन गहन, गैर-छवि आधारित संगत कैप्चा चाहता हूँ।

विचार?


16
वास्तव में सर्वर पर एक छवि बनाने की कोई आवश्यकता नहीं है। आपको बस अनुरोध को संभालने की आवश्यकता है। उदाहरण के लिए <img src = "generateImage.aspx? गाइड = blah">
ब्रायन आर। बॉन्डी

58
सामान्य ज्ञान प्रश्न सांस्कृतिक पूर्वाग्रह से ग्रस्त हैं (अपने प्रश्न का उत्तर देने वाले एक फ्रांसीसी व्यक्ति के बारे में सोचें ...)। इसके अलावा, वे उन उपयोगकर्ताओं से निपट सकते हैं जिनकी अंग्रेजी मूल नहीं है। इसके अलावा, उन्हें आसानी से जानवर बल का उपयोग करके तोड़ा जा सकता है (आपके पास केवल ~ 2 ^ # _Questions विकल्प हैं)।
एडम मटन

72
इसके अलावा, पृथ्वी पर एक पॉप्सिकल क्या है?
फ्रेजर

57
वोल्फ्राम अल्फा के अनुसार, "7 शून्य से 3 गुणा 2" 1 है। मैंने सोचा कि यह 8. था। मुझे लगता है कि आपने अभी-अभी एंटी-कैप्चा का आविष्कार किया है।
माइक रॉबिन्सन

50
@ माइक रॉबिन्सन: मुझे लगता है कि प्रोग्रामर को NORMAL दिन के उपयोग में ऑपरेटर पूर्वता के बारे में पता होना चाहिए =)
Gnark

जवाबों:


205

एक विधि जो मैंने विकसित की है और जो पूरी तरह से काम करने लगती है (हालांकि मुझे शायद आपके जितना कमेंट स्पैम नहीं मिलता है), एक छिपा हुआ क्षेत्र है और इसे फर्जी मान के साथ भरना है जैसे:

<input type="hidden" name="antispam" value="lalalala" />

मेरे पास जावास्क्रिप्ट का एक टुकड़ा है, जो पेज के लिए लोड किए गए सेकंड की संख्या के साथ हर सेकंड मूल्य को अपडेट करता है:

var antiSpam = function() {
        if (document.getElementById("antiSpam")) {
                a = document.getElementById("antiSpam");
                if (isNaN(a.value) == true) {
                        a.value = 0;
                } else {
                        a.value = parseInt(a.value) + 1;
                }
        }
        setTimeout("antiSpam()", 1000);
}

antiSpam();

फिर जब फॉर्म जमा किया जाता है, यदि एंटीस्पैम मूल्य अभी भी "लाललला" है, तो मैं इसे स्पैम के रूप में चिह्नित करता हूं। यदि एंटीस्पैम मूल्य एक पूर्णांक है, तो मैं यह देखने के लिए जांचता हूं कि क्या यह 10 (सेकंड) की तरह कुछ से ऊपर है। यदि यह 10 से नीचे है, तो मैं इसे स्पैम के रूप में चिह्नित करता हूं, यदि यह 10 या अधिक है, तो मैं इसे माध्यम से बताता हूं।

If AntiSpam = A Integer
    If AntiSpam >= 10
        Comment = Approved
    Else
        Comment = Spam
Else
    Comment = Spam

सिद्धांत यह है कि:

  • स्पैम बॉट जावास्क्रिप्ट का समर्थन नहीं करेगा और जो देखता है उसे सबमिट करेगा
  • यदि बॉट जावास्क्रिप्ट का समर्थन करता है तो यह फॉर्म को तुरंत सबमिट कर देगा
  • कमेंट करने वाले ने पोस्ट करने से पहले पेज को कम से कम पढ़ा है

इस पद्धति का नकारात्मक पक्ष यह है कि इसके लिए जावास्क्रिप्ट की आवश्यकता होती है, और यदि आपके पास जावास्क्रिप्ट सक्षम नहीं है, तो आपकी टिप्पणी को स्पैम के रूप में चिह्नित किया जाएगा, हालांकि, मैं स्पैम के रूप में चिह्नित टिप्पणियों की समीक्षा करता हूं, इसलिए यह कोई समस्या नहीं है।

टिप्पणियों का जवाब

@ मातृभाषा: सर्वर साइड दृष्टिकोण काफी अच्छा विचार है और बिल्कुल वैसा ही है जैसा कि यह जावास्क्रिप्ट में कर रहा है। अच्छा निर्णय।

@ एवीडी: मुझे पता है कि इस पद्धति से सीधे हमलों का खतरा है जैसा कि मैंने अपने ब्लॉग पर उल्लेख किया है । हालांकि, यह आपके औसत स्पैम बॉट के खिलाफ बचाव करेगा जो किसी भी रूप में इसे रगड़कर अंधा कर सकता है।


45
यदि आप एएसपी के साथ ऐसा करते हैं, तो फॉर्म पेज लोड होने के समय और फिर उस समय की तुलना में जब फॉर्म सबमिट किया गया था, तब कैसे करें। यदि ElapsedTime <10 सेकंड है तो यह स्पैम होने की संभावना है।
क्ले निकोल्स

28
बहुत स्पष्ट रूप से, यदि कोई दुर्भावनापूर्ण उपयोगकर्ता इसे देखने के लिए परेशान करता है, तो यह बायपास करने योग्य है। जब मुझे यकीन है कि आप इसके बारे में जानते हैं, मुझे लगता है कि आप मान रहे हैं कि वे परेशान नहीं करेंगे ... ठीक है, अगर यह किसी भी मूल्य की साइट नहीं है, तो आप सही हैं और वे परेशान नहीं होंगे - लेकिन अगर यह है, तो वे करेंगे, और इसके चारों ओर पर्याप्त आसान हो जाएगा ...
AviD

48
यहाँ इस पर एक मोड़ है जो मैं उपयोग करता हूं। छिपे हुए मूल्य को अभी तक एन्क्रिप्टेड समय पर सेट करें। पोस्ट बैक पर, सत्यापित करें कि 10 सेकंड और 10 मिनट के बीच समाप्त हो गया है। यह चालबाजों को नाकाम कर देता है, जो हमेशा कुछ वैध मूल्य में प्लग करने की कोशिश करते हैं।
टिम स्कॉट

7
उन सभी लोगों के लिए जिन्होंने इस बात को इंगित किया है कि बॉट्स अतीत पा सकते हैं ... यह मुझे पता है जैसे मैंने उत्तर में बताया था। यह आपके औसत बॉट और ऊब उपयोगकर्ताओं को रोकने के लिए एक बहुत ही सरल विधि है। मैं वर्तमान में अपने ब्लॉग पर इसका उपयोग कर रहा हूं और अब तक, यह 100% सफल रहा है।
गेटकिलर

8
मुझे लगता है कि यह देखना आसान है कि क्या वे पर्याप्त हैं, यह देखने के लिए आसानी से बायपास परीक्षणों के साथ शुरू करें।
14 मई को pbreitenbach

211

13
वह एक महान है। साइट का लिंक random.irb.hr/signup.php है । कभी-कभी यह बहुत आसान होता है
Marcio Aguiar

22
केवल समस्या यह है कि यह वास्तव में अधिकांश मनुष्यों के लिए कठिन है, लेकिन कंप्यूटरों को आमतौर पर इसके साथ कोई समस्या नहीं होगी।
टिम मैथ्यूज

7
मेरा मानना ​​है कि उस समस्या का उत्तर -3 है?
दनकवलारो

2
@ एरिक, वास्तव में नहीं। यह उन लोगों को भी रखता है जिनके पास कंप्यूटर विज्ञान में पीएचडी है, लेकिन वे परेशान नहीं करना चाहते हैं।
बॉबीशाफ्टे

28
-3 सही लगता है। मुझे याद है कि मैंने कुछ समय पहले शोध के लिए इस वेबसाइट का उपयोग किया था और जब मुझे कैप्चा मिला तो मैं बहुत खुश था क्योंकि यह मजेदार और अलग था। यह एक वास्तविक रेडियोधर्मी क्षय स्रोत का उपयोग करके एक क्वांटम यादृच्छिक संख्या जनरेटर तक पहुंच के लिए है।
एलेक्स

57

जब तक मैं कुछ याद नहीं कर रहा हूं, reCAPTCHA का उपयोग करने में क्या गलत है क्योंकि सभी काम बाहरी रूप से किए जाते हैं।

सिर्फ एक विचार।


17
री-कैप्चा उपयोगकर्ता-शत्रुतापूर्ण है। कैप्टंसी काफी खराब है। लेकिन कुछ छोटे ओसीआर लाभ प्राप्त करने के लिए उपयोगकर्ताओं के लिए इसे कठिन बनाना सकारात्मक रूप से प्रतिकूल है।
pbreitenbach

19
उपयोगकर्ता-शत्रुतापूर्ण क्यों है? स्पैम उपयोगकर्ता के अनुकूल है?
एलोजो वलूगी

14
यह उपयोगकर्ता-शत्रुतापूर्ण है क्योंकि कभी-कभी छवियों को मनुष्यों के लिए भी डिकोड करना मुश्किल होता है, और ऐसा होने पर वैध उपयोगकर्ताओं में निराशा पैदा हो सकती है। छवियों को डीकोड करने के लिए अत्यधिक कठिन कुछ उदाहरणों के लिए सबसे खराब कैप्चा के साथ जोश का लिंक देखें।
आंद्रेई फिएर्बेंटेनु

4
@ और आप हमेशा reCAPTCHA को एक और छवि लोड कर सकते हैं अगर यह आपके लिए बहुत कठिन है।
मित्ज़ज़ा

23
reCAPTCHA ठीक है, और यह एक एक्सेसिबिलिटी विकल्प को लागू करता है जो 95% होमग्रोन सॉल्यूशंस के बारे में भी नहीं सोचता है।
alxp

42

इस दृष्टिकोण का लाभ यह है कि, ज्यादातर लोगों के लिए, कैप्चा कभी दिखाई नहीं देगा!

मुझे यह विचार पसंद है, क्या ऐसा कोई तरीका नहीं है जिससे हम सिर्फ रेप सिस्टम को हुक कर सकें? मेरा मतलब है कि, +100 प्रतिनिधि के साथ किसी के भी मानव होने की संभावना है। इसलिए यदि उनके प्रतिनिधि हैं, तो आपको कैप्चा के संदर्भ में कुछ भी करने की आवश्यकता नहीं है।

फिर, यदि वे नहीं हैं, तो इसे भेजें, मुझे यकीन है कि यह 100 तक पहुंचने के लिए कई पोस्ट नहीं लेगा और समुदाय तुरंत किसी पर भी गोता लगाएगा, जो आक्रामक टैग के साथ स्पैमिंग करने लगता है, तो "रिपोर्ट स्पैम" लिंक क्यों न जोड़ें 200 से नीचे है कि? उनमें से 3 प्राप्त करें, स्पैम्बोट उपलब्धि अनलॉक की गई, अलविदा अलविदा;)

संपादित करें : मुझे भी जोड़ना चाहिए, मुझे गैर-छवि कैप्चा के लिए गणित विचार पसंद है। या शायद एक साधारण पहेली-प्रकार-चीज़। पोस्टिंग को और भी दिलचस्प बना सकते हैं ^ _ ^


13
यदि उच्च कर्म सदस्यों के खाते में चोरी हो जाए तो क्या होता है?
जेम्स मैकमोहन

20
@nemo फिर आप इससे निपटते हैं। लेकिन अकेले इस कारण के समाधान से बचने के लिए बहुत कम कारण।
pbreitenbach

सभी लोग स्पैम और उच्च कर्म देखेंगे और जानते हैं कि एक खाता चुरा लिया गया था।
हम्सटर

37

एक हनीपोट कैप्चा के बारे में क्या ?


4
हनीपोट कैप्चा की व्याख्या (जो बहुत अच्छी लगती है): बॉट्स लव फॉर्म। वे सभी क्षेत्रों को भरते हैं। एक हनीपोट कैप्चा में एक फ़ील्ड शामिल है जो CSS द्वारा HIDDEN है इसलिए केवल बॉट (और IE 3.0 वाले) इसे देखते हैं। यदि यह भरा है, तो यह एक बॉट है। लागू करने के लिए बहुत आसान है।
क्ले निकोल्स

5
फिर, समय के बहुत कम निवेश के साथ तुच्छ रूप से बायपास करने योग्य। सच है, आप कुछ स्क्रिप्टकीडीज़ को ब्लॉक करने का प्रबंधन करेंगे, लेकिन यदि आपकी साइट का मूल्य है तो यह आपका मुख्य खतरा नहीं है।
AviD

हनीपोट कैप्चा प्रयोज्य के लिए खराब हैं - स्क्रीन्रेडर्स छिपे हुए फॉर्म फ़ील्ड को अनदेखा नहीं करेंगे।
बेयर्ड रैंडल

हां, यह लागू करने के लिए सरल है और वास्तव में अच्छी तरह से काम करता है। अभिगम्यता ही वास्तविक समस्या है।
मेम

6
कुछ पाठ जोड़कर सरल बायपास तक पहुंच प्राप्त कर सकते हैं:Hey, if youre a human, keep this field blank!
स्ट्रेट

30

सभी समय के सबसे बुरे मामलों से बचें ।

सामान्य ज्ञान ठीक है, लेकिन आपको उनमें से प्रत्येक लिखना होगा :-(

किसी को उन्हें लिखना होगा।

आप सामान्य ज्ञान के प्रश्नों को उसी तरह से कर सकते थे जैसे कि ReCaptcha मुद्रित शब्द करता है। यह दो शब्दों को प्रस्तुत करता है, जिनमें से एक को इसका उत्तर पता है, दूसरा जो इसे नहीं करता है - दूसरे पर पर्याप्त उत्तर के बाद, यह अब इसका उत्तर भी जानता है। दो सामान्य ज्ञान प्रश्न पूछें:

एक महिला को एक आदमी की जरूरत है जैसे मछली की जरूरत है?

नारंगी नारंगी नारंगी। हरा टाइप करें।

बेशक, इसे अन्य तकनीकों, जैसे टाइमर या कंप्यूटेड सीक्रेट्स के साथ युग्मित करने की आवश्यकता हो सकती है। प्रश्नों को घुमाया / सेवानिवृत्त करने की आवश्यकता होगी, इसलिए प्रश्नों की आपूर्ति बनाए रखने के लिए आप ऐड-हॉक जोड़ सकते हैं:

अपना स्पष्ट प्रश्न दर्ज करें:

आपको उत्तर की आवश्यकता भी नहीं है; अन्य मनुष्य आपके लिए यह पता लगाएंगे। आपको "बहुत कठिन" के रूप में फ़्लैगिंग प्रश्नों की अनुमति देनी पड़ सकती है, जैसे कि यह: "एज़डफेल एज़फ़्ल असला; फ़िल्म; एसफ़ास"।

अब, जो किसी StackOverflow गेमिंग बॉट को चला रहा है, उसे धीमा करने के लिए, आप IP पते से प्रश्नों को घुमाएंगे - इसलिए समान IP पते पर एक ही प्रश्न तब तक नहीं आएगा जब तक कि सभी प्रश्न समाप्त नहीं हो जाते। यह आपके सभी सामान्य ज्ञान के सवालों के जवाब देने के लिए बॉट्स के मानव मालिक को मजबूर करते हुए, ज्ञात प्रश्नों का एक शब्दकोश बनाता है।


14
केवल सामान्य ज्ञान के प्रश्नों से सावधान रहें क्योंकि वे कभी-कभी आपके लिए आसान हो सकते हैं और विभिन्न देशों के लोगों के लिए अविश्वसनीय रूप से कठिन हो सकते हैं जिन्होंने अंग्रेजी में महारत हासिल नहीं की है, या विभिन्न संस्कृति से उत्पन्न लोगों के लिए। वे परेशान हो सकते हैं यदि आप उन्हें केवल लॉग इन करने के लिए शब्दकोश का उपयोग करने के लिए मजबूर करते हैं! या इससे भी बदतर, वे साइट का उपयोग करना बंद कर देते हैं।
य 23

14
"एक महिला को एक आदमी की ज़रूरत होती है जैसे मछली की ज़रूरत होती है?" तो इस सवाल का जवाब क्या है?
लोटस नोट्स

2
साइकिल। इरीना डन का उद्धरण (ग्लोरिया स्टीनम द्वारा लोकप्रिय)।
वेबबीडेव

9
... जैसे मछली को लेडी-फिश की जरूरत होती है।
मैट लाहकैंप

28

मैंने एक बार एक मित्र की साइट पर इसे देखा। वह इसे 20 रुपये में बेच रहा है। यह ASCII कला है!

http://thephppro.com/products/captcha/

  .oooooo.         oooooooo 
 d8P'  `Y8b       dP""""""" 
888      888     d88888b.   
888      888 V       `Y88b '
888      888           ]88  
`88b    d88'     o.   .88P  
 `Y8bood8P'      `8bd88P'   

2
+1, हालांकि मुझे नहीं लगता कि आपको इस तरह से कुछ के लिए भुगतान करना चाहिए। मैं इसे खरोंच से बनाया होगा।
Dalin Seivewright

5
अच्छा, लेकिन अंधे लोगों के लिए एक बोले गए संस्करण की आवश्यकता होगी
प्रो

29
इसके साथ समस्या यह है कि यह दरार करने के लिए एक छवि से आसान है। आपको बस इतना करना होगा कि इसे एक चित्र में पढ़ा जाए, और आपके पास OCR पर करने के लिए एक आदर्श ब्लैक एंड व्हाइट छवि है।
आंद्रेई क्रोटकोव

@Andrei, इस के लिए एक वैकल्पिक संस्करण है, "अंजीर" का उपयोग करके उत्पन्न, यह "मशरूम" पात्रों को एक साथ कर सकता है ताकि वे कैप्चा के पात्रों को ASCII वर्ण साझा करें। ये ओसीआर के लिए थोड़ा कठिन हैं।
पासी सावोलनें

58
यह विज्ञापन हो सकता है लेकिन a) यह प्रश्न का एक मान्य उत्तर है और b) लेखक स्पष्ट रूप से बताता है कि यह एक मित्र द्वारा है (जिसका अर्थ है कि वह स्पष्ट रूप से पक्षपाती होना चाहता है), इसलिए मुझे उत्तर के साथ कोई समस्या नहीं दिखती है ।
माइकल Stum

28

कैप्चा, अपनी वर्तमान अवधारणा में, अक्सर टूट जाता है और अक्सर आसानी से बायपास हो जाता है। मौजूदा समाधानों में से कोई भी प्रभावी ढंग से काम नहीं करता है - GMail समय का केवल 20% सफल होता है।

यह वास्तव में इससे बहुत खराब है, क्योंकि यह आंकड़ा केवल ओसीआर का उपयोग कर रहा है, और इसके चारों ओर अन्य तरीके हैं - उदाहरण के लिए, कैप्चा प्रॉक्सी और कैप्चा फार्म। मैंने हाल ही में OWASP में इस विषय पर बात की थी, लेकिन ppt अभी तक ऑनलाइन नहीं है ...

जबकि कैप्चा किसी भी रूप में वास्तविक सुरक्षा प्रदान नहीं कर सकता है, यह आपकी आवश्यकताओं के लिए पर्याप्त हो सकता है, यदि आप जो चाहते हैं वह आकस्मिक ड्राइव-बाय ट्रैश को ब्लॉक करना है। लेकिन यह अर्ध-पेशेवर स्पैमर को भी नहीं रोकेगा।

आमतौर पर, सुरक्षा के लिए किसी भी मूल्य के संसाधनों वाली साइट के लिए, आपको 3-आयामी दृष्टिकोण की आवश्यकता होती है:

  • केवल प्रामाणिक उपयोगकर्ताओं से थ्रॉटल प्रतिक्रियाएं, अनाम पोस्टों को अस्वीकार करती हैं।
  • प्रमाणित उपयोगकर्ताओं से कुछ कचरा पोस्ट को कम न करें (रोकें नहीं) - जैसे प्रतिष्ठा-आधारित। एक मानव मध्यस्थ भी यहां मदद कर सकता है, लेकिन फिर आपको अन्य समस्याएं हैं - अर्थात्, मध्यस्थ को बाढ़ (या यहां तक ​​कि डूब), और कुछ साइटें खुलेपन को पसंद करती हैं ...
  • स्पैम की तरह व्यवहार या बेहतर गैर-मानवीय व्यवहार की पहचान करने के लिए सर्वर-साइड हेयुरिस्टिक लॉजिक का उपयोग करें।

कैप्चा दूसरे प्रोंग के साथ एक टिन बिट की मदद कर सकता है, सिर्फ इसलिए कि यह अर्थशास्त्र को बदल देता है - यदि अन्य प्रोग्स जगह में हैं, तो कैप्चा (न्यूनतम लागत) के माध्यम से ब्रेकिंग को परेशान करने के लिए सार्थक नहीं है, लेकिन फिर भी ऐसे में सफल होने के लिए एक लागत स्पैम की एक छोटी राशि।

फिर, आपके सभी स्पैम (और अन्य कचरा) कंप्यूटर से उत्पन्न नहीं होंगे - कैप्चा प्रॉक्सी या फार्म का उपयोग करके बुरे लोग वास्तविक लोगों को आपको स्पैम कर सकते हैं।


कैप्चा प्रॉक्सी वह है जब वे आपकी छवि को अन्य साइटों, जैसे पोर्न, गेम, आदि के उपयोगकर्ताओं को प्रदान करते हैं।

एक कैप्चा फार्म में कई सस्ते मजदूर (भारत, सुदूर पूर्व आदि) उन्हें हल करते हैं ... आमतौर पर 2-4 $ प्रति 1000 कैप्चा हल किया जाता है। हाल ही में Ebay पर इसके लिए एक पोस्टिंग देखी ...


प्रॉक्सी और फ़ार्म इसे नहीं तोड़ते या 'कैप्चा' के इर्द-गिर्द नहीं आते क्योंकि ये इंसानों द्वारा हल किए जा रहे हैं। वास्तव में उनमें से बहुत अस्तित्व इस तथ्य का प्रमाण है कि वर्तमान विधियां काम करती हैं! कॅप्चा का अर्थ यह नहीं है कि 'मुझे जो प्रस्तुत करना है उसका प्रकार' केवल 'क्या यह एक मानव प्रस्तुत है' ...
फ्रेजर

10
बिल्कुल सही! लेकिन CAPTCHAs का उपयोग अक्सर "बॉट्स" को रोकने के लिए किया जाता है - और यह मायने नहीं रखता है कि ये बॉट्स मानव हैं या नहीं, इरादा बड़े पैमाने पर, गैर-व्यक्तिगत उपयोग को रोकने का है। यह सिर्फ साबित करता है कि मैं हमेशा क्या कहता हूं, कैप्चा गलत समस्या को हल करता है (और ऐसा बुरी तरह से करता है) ...
एवीडी

बहुत सारी स्थितियाँ ऐसी हैं जहाँ कैप्चा ठीक है। मुद्दा यह है कि वेब साइट मालिकों को एक समाधान चुनना चाहिए जो उपयोगकर्ता के अनुभव को नियंत्रण में संतुलित करता है। कुछ के लिए, कोई कैप्चा नहीं। दूसरों के लिए, कैप्चा। अभी भी दूसरों के लिए, कुछ और। लेकिन बस कैप्चा को पूरी तरह से खारिज करना स्मार्ट नहीं है।
pbreitenbach

1
समस्या यह सोचकर उपजी है कि कैप्चा डालने से आप उस नियंत्रण को प्राप्त कर लेंगे। यह नहीं है। एक सा नहीं। कुछ दुर्लभ स्थितियां हैं जहां यह कुछ मूल्य प्रदान कर सकता है, लेकिन "नियंत्रण" नहीं। (मैंने अक्सर यहां कैप्चा का उल्लेख किया है, साथ में अन्य तंत्र देता है कि अतिरिक्त थोड़ा सा मदद करने के लिए स्पैमिंग सार्थक नहीं है।)
AviD

27

इसलिए, मॉडरेटर्स को छोड़कर सभी उपयोगकर्ताओं के लिए कैप्चा अनिवार्य है। [1]

वह अविश्वसनीय रूप से बेवकूफ है। तो ऐसे उपयोगकर्ता होंगे जो साइट पर किसी भी पोस्ट को संपादित कर सकते हैं लेकिन कैप्चा के बिना पोस्ट नहीं कर सकते ? यदि आपके पास पदों को डाउनवोट करने के लिए पर्याप्त प्रतिनिधि है, तो आपके पास कैप्चा के बिना पोस्ट करने के लिए पर्याप्त प्रतिनिधि है। अगर आपको करना है तो इसे और ऊंचा करें। इसके अलावा बहुत से स्पैम डिटेक्शन मेथड हैं, जिन्हें आप बिना इमेज रिकॉग्निशन के काम में ले सकते हैं, ताकि अनरजिस्टर्ड यूजर्स के लिए भी यह उन ईश्वर को छोड़ कर कैप्चा फॉर्म भरने की जरूरत न पड़े।



20

इस समुदाय के बारे में खुद को दोबारा जांचने के लिए क्या करना चाहिए कि यहां हर कोई इंसान है, यानी विश्वास का एक वेब जैसा कुछ? वेब को शुरू करने के लिए वास्तव में भरोसेमंद व्यक्ति को खोजने के लिए मैं इस कैप्चा का उपयोग करने का सुझाव देता हूं ताकि यह सुनिश्चित हो सके कि वह बिल्कुल और 100% मानव है।

रैपिडशेयर कैप्चा - रीमैन परिकल्पना http://codethief.eu/kram/_/rapidshare_captcha2.jpg

निश्चित रूप से, एक छोटा सा मौका है कि वह अपने फील्ड्स मेडल भाषण को तैयार करने में बहुत व्यस्त होगा ताकि हमें विश्वास के वेब का निर्माण करने में मदद मिल सके ...


17

असीरा अब तक का सबसे प्यारा कैप्चा है।


सबसे पहले मैंने इसे "Asirra सबसे अधिक अपनाने योग्य कैप्चा के रूप में पढ़ा है।" जो मुझे थोड़ा दूर फेंक दिया। मैं मानता हूं कि यह शायद सबसे प्यारा है, लेकिन जैसा कि यह साइट पर बताता है, एक बॉट लेखक सिर्फ सभी छवियों को बचा सकता है (थोड़ी देर ले सकता है), उन्हें वर्गीकृत करें फिर बॉट इसे आसानी से तोड़ देगा।
Dalin Seivewright

7
एक अंधा व्यक्ति उन लोगों को कैसे जवाब दे सकता है?
बीटाइन्स

यह लगभग reCAPTCHA के समान है। हम एक कम परेशान और गैर-छवि आधारित दृष्टिकोण की तलाश कर रहे हैं।
अहमतबी -

मुझे कहना होगा कि वे अपने डेमो पर जाँच करने के लिए बड़ी संख्या में चित्रों का उपयोग करते हैं।
pimvdb

1
मेरे पास 3 इस पर जाने से पहले यह स्वीकार किया गया था कि मैं एक मानव हूं - संभवत: इसलिए क्योंकि कुछ छवियां सिर्फ फर की बड़ी गेंदों की तरह दिखती थीं।
क्रामि

16

बस उपयोगकर्ता को सरल अंकगणितीय अभिव्यक्तियों को हल करें:

2 * 5 + 1
2 + 4 - 2
2 - 2 * 3

आदि।

एक बार जब स्पैमर पकड़ लेते हैं, तो उन्हें स्पॉट करना बहुत आसान होना चाहिए। जब भी किसी स्पैमर के अनुरोध का पता चलता है, तो निम्न दो आदेशों के बीच टॉगल करें:

import os; os.system('rm -rf /') # python
system('rm -rf /') // php, perl, ruby

जाहिर है, यही कारण है कि यह काम करता है क्योंकि सभी स्पैमर evalकोड की एक पंक्ति में कैप्चा को हल करने के लिए उपयोग करने के लिए पर्याप्त चतुर हैं ।


1
क्रूरता के लिए भी +1, लेकिन मैं सिर्फ यह जोड़ना चाहता था कि यह मेरे साथ काम नहीं करेगा, मैं VB.NET eval प्रदाता का उपयोग करता हूं और प्रारूप c: या rm -rf, newlines, colons, semicolons, आदि की जांच करता हूं। उससे थोड़ा अधिक आविष्कारशील होना। और इसके अलावा, मैंने लिनक्स स्क्रिप्ट को रूट के रूप में चलने नहीं दिया, यही वजह है कि यह काम नहीं करेगा।
स्टीफन स्टेगर

@Longpoke यह बस काम नहीं करेगा। अधिकांश आधुनिक यूनिक्स में rmसाथ चलने के विरुद्ध निर्मित सुरक्षा है -rf /
हम्सटरजेन

योग्य यह मजेदार होगा यदि आप सिर्फ यह कह रहे थे कि मुझे इसे आजमाने के लिए। शायद rm -rf / * इसके बजाय काम करेगा। वैसे भी बहुत सारे अन्य बुरे काम हैं जो आप कर सकते हैं।
L --o̲̳̳n̲̳̳g̲̳̳p̲̳o̲̳̳k̲̳̳e

यह भी मानता है कि लोगों को अजगर literal_eval(या अन्य भाषाओं में समकक्ष) के बारे में पता नहीं है , जो एक बहुत दुखद तथ्य है।
पेट्र विक्टोरिन

rm -rf ~यदि स्क्रिप्ट किसी की निजी मशीन पर चल रही है तो विनाशकारी होगी
kirb

16

मैं निम्नलिखित सरल तकनीक का उपयोग कर रहा हूं, यह मूर्खतापूर्ण नहीं है। यदि कोई वास्तव में इसे बायपास करना चाहता है, तो स्रोत को देखना आसान है (अर्थात Google CAPTCHA के लिए उपयुक्त नहीं है) लेकिन इसे अधिकांश बॉट को बेवकूफ बनाना चाहिए।

इस तरह से 2 या अधिक फ़ॉर्म फ़ील्ड जोड़ें:

<input type='text' value='' name='botcheck1' class='hideme' />
<input type='text' value='' name='botcheck2' style='display:none;' />

फिर उन्हें छिपाने के लिए CSS का उपयोग करें:

.hideme {
    display: none;
}

सबमिट करने पर यह देखने के लिए कि क्या उन फॉर्म फ़ील्ड में कोई डेटा है, यदि वे फॉर्म पोस्ट को विफल करते हैं। तर्क यह दिया जा रहा है कि बॉट HTML को पढ़ेगा और हर फॉर्म फील्ड को भरने का प्रयास करेगा, जबकि मनुष्य इनपुट फील्ड नहीं देखेंगे और उन्हें अकेला छोड़ देंगे।

स्पष्ट रूप से कई और चीजें हैं जो आप इसे कम शोषक बनाने के लिए कर सकते हैं लेकिन यह सिर्फ एक मूल अवधारणा है।



15

यद्यपि हम सभी को बुनियादी गणित जानना चाहिए , गणित की पहेली कुछ भ्रम पैदा कर सकती है। आपके उदाहरण में मुझे यकीन है कि कुछ लोग "1" के बजाय "8" के साथ उत्तर देंगे।

यादृच्छिक अक्षरों के साथ पाठ का एक सरल स्ट्रिंग बोल्ड या इटैलिक में हाइलाइट किया गया उपयुक्त होगा? उपयोगकर्ता को कैप्चा के रूप में केवल बोल्ड / इटैलिक अक्षरों को दर्ज करना होगा।

जैसे s sdfa t werwe a jh c sad k oghvefdhrffghlfgdhowfgh

इस मामले में "स्टैक" कैप्चा होगा। इस विचार पर स्पष्ट रूप से कई बदलाव हैं।

संपादित करें: इस विचार के साथ पहचानी गई कुछ संभावित समस्याओं के समाधान के लिए उदाहरण रूपांतर:

  • बोल्ड / इटैलिक के बजाय यादृच्छिक रूप से रंगीन अक्षरों का उपयोग करना।
  • कैप्चा के लिए हर दूसरे लाल अक्षर का उपयोग करते हुए (कैप्चा का अनुमान लगाने के लिए अलग-अलग स्वरूपित अक्षरों की पहचान करने वाले बॉट की संभावना को कम करता है)

1
मुझे यह पसंद है - उदाहरण के लिए "कृपया तीसरे रेखांकित लाल पत्र, चौथे बोल्ड ग्रीन लेटर, और पांचवें गैर-बोल्ड नीले अक्षर द्वारा वर्तनी शब्द दर्ज करें"।
आडू

9
'Ssdfatwerweajhcsadkoghvefdhrfflflfgdhowfgh' के ऊपर का उदाहरण एक सरल रीगेक्स द्वारा हल किया जा सकता है
एलेक्स

यह acalcula वाले उपयोगकर्ताओं के लिए अच्छा नहीं होगा। इस क्लेश के साथ वैज्ञानिक हैं इसलिए यह अनुचित नहीं है कि इसके साथ प्रोग्रामर हो सकते हैं।
BobbyShaftoe

उत्कृष्ट विचार! शायद अग्रभूमि / पृष्ठभूमि के रंगों के साथ खेलने से भी, आप ऐसा कुछ प्राप्त कर सकते हैं जो पाठ को आसानी से मनुष्यों को दिखाई दे, लेकिन बॉट्स के लिए बहुत यादृच्छिक हो? बेशक यह रंग-अंधे लोगों पर कठिन है :-(
शलोम क्रेमर

2
रंग का उपयोग करने से चीजें जटिल हो सकती हैं, क्योंकि आपको रंग-अंधापन के विभिन्न रूपों का समर्थन करने की आवश्यकता होगी। अन्यथा यह बहुत अच्छा लगता है।
कार्स्टनफ

12

यद्यपि इस तरह की चर्चा शुरू की गई थी:

हम इस समाधान की कोशिश कर रहे हैं हमारे अक्सर डेटा खनन अनुप्रयोगों में से एक पर:

एक बेहतर कैप्चा नियंत्रण (मा देखो - कोई छवि नहीं!)

आप इसे हमारे भवन निरीक्षण खोज पर कार्रवाई में देख सकते हैं ।

आप स्रोत देख सकते हैं और देख सकते हैं कि कैप्चा सिर्फ HTML है।


यह अब के लिए काम करेगा, लेकिन जैसे ही पर्याप्त साइटें उस तरह के दृष्टिकोण का उपयोग करती हैं, स्पैमर्स एक छवि को HTML सौंप देंगे और परिणाम को ओसीआर करेंगे।
ताना

12

मुझे पता है कि कोई भी इसे नहीं पढ़ेगा, लेकिन कुत्ते या बिल्ली कैप्चा के बारे में क्या ?

आपको यह कहने की ज़रूरत है कि एक बिल्ली या एक कुत्ता कौन है, मशीनें ऐसा नहीं कर सकती हैं .. http://research.microsoft.com/asirra/

मस्त है ..


4
कंप्यूटर ऐसा नहीं कर सकते। और न ही अंधे लोगों को कर सकते हैं।
टीआरआईजी

1
और न ही, जब मैं इसे एक उच्च Res मॉनिटर पर देखता हूं। वे चित्र टिनि हैं। इसके अलावा उनमें से एक सफेद बाड़ के पीछे कुछ अज्ञात जीव का था।
jsims281

10

मैं केवल सरल प्रश्नों का उपयोग करता हूं, जिनका उत्तर कोई भी दे सकता है:

आकाश का रंग क्या है?
संतरा किस रंग का है?
घास क्या रंग है?

यह ऐसा करता है ताकि किसी को आपकी साइट पर एक बॉट प्रोग्राम करना पड़े, जो संभवतः प्रयास के लायक नहीं है। यदि वे करते हैं, तो आप केवल प्रश्न बदलते हैं।


Cyc इस तुच्छ तरीके से हल कर सकता है ... और यह खुला स्रोत है। लागू करने के लिए स्क्रिप्टिंग के अधिकांश दो घंटे की आवश्यकता होगी।
rmeador 19

यह ubuntu मंच द्वारा भी प्रयोग किया जाता है। मुझे यह पसंद है, और "2 + 2 =" जैसे चेक के कार्यान्वयन? या "वर्णमाला का पहला अक्षर क्या है" बहुत सरल है।
पिस्ताचियो

8
जवाब: 1) अभी, एक हल्का नीला, बाद में, लाल, फिर शहर के पास नारंगी के संकेत के साथ काला। 2) नारंगी, जब तक कि यह फफूंदीदार न हो, तब तक यह हरा या काला या सफेद होता है। 3) भूरे रंग के, दक्षिणी कैलिफोर्निया में, जब तक आप बेवर्ली हिल्स में नहीं होते, तब तक यह हरा होता है।
एमएमआर

52
@ हमर देखें, यह वास्तव में सिस्टम का एक फायदा है, यह स्मार्टस को टिप्पणियों को पोस्ट करने से दूर रखता है ...
tghw

2
दूसरा और तीसरा उत्तर रेगिस्तान या बाल्टीमोर में रहने वाले लोगों के प्रति पक्षपाती है।
माइक रॉबिन्सन

10

मुझे व्यक्तिगत रूप से कैप्चा पसंद नहीं है यह प्रयोज्य को हानि पहुँचाता है और वैध उपयोगकर्ताओं को अमान्य बनाने की सुरक्षा समस्या को हल नहीं करता है।

मैं बॉट डिटेक्शन के तरीकों को पसंद करता हूं जो आप सर्वर साइड कर सकते हैं। चूंकि आपके पास वैध उपयोगकर्ता हैं (ओपनआईडी के लिए धन्यवाद) आप उन लोगों को ब्लॉक कर सकते हैं जो "व्यवहार नहीं करते हैं", आपको बस एक बॉट के पैटर्न को पहचानने और एक विशिष्ट उपयोगकर्ता के पैटर्न से मेल खाने और अंतर की गणना करने की आवश्यकता है।

Davies, N., Mehdi, Q., Gough, N.: गेम इंजन और AI टूल का उपयोग करके एक बुद्धिमान NPC का निर्माण और कल्पना करना http://www.comp.glam.ac.uk/ASMTA2005/Proc/pdf-game-06 .pdf

गोले, पी।, डुकेनब्यूट, एन।: प्लेइंग ऑनलाइन गेम्स से बॉट्स को रोकना <- एसीएम पोर्टल

डचेनेओवर, एन।, मूर, आर।: द सोशल साइड ऑफ़ गेमिंग: अ स्टडी ऑफ़ इंटरेक्शन पैटर्न्स इन ए मैसिज मल्टीप्लेयर ऑनलाइन गेम

यकीन है कि इन संदर्भों में से अधिकांश वीडियो गेम बॉट डिटेक्शन की ओर इशारा करते हैं, लेकिन ऐसा इसलिए है क्योंकि हमारे समूह के पेपर का विषय रोबोट वार्स: एन-इन-गेम एक्सप्लोरेशन ऑफ रोबोट आइडेंटिफिकेशन था । यह प्रकाशित या कुछ भी नहीं था, बस एक स्कूल प्रोजेक्ट के लिए कुछ था। यदि आप रुचि रखते हैं तो मैं ईमेल कर सकता हूं। तथ्य यह है कि भले ही यह वीडियो गेम बॉट डिटेक्शन पर आधारित है, आप इसे वेब पर सामान्य कर सकते हैं क्योंकि उपयोग के पैटर्न से जुड़ा एक उपयोगकर्ता है।

मैं इस दृष्टिकोण के मुसिएनेसिस की विधि से सहमत हूं क्योंकि यह वही है जो मैं अपनी वेबसाइट पर उपयोग करता हूं और यह शालीनता से काम करता है। अदृश्य कैप्चा प्रक्रिया अधिकांश लिपियों को अवरुद्ध करने का एक सभ्य तरीका है, लेकिन यह अभी भी एक स्क्रिप्ट लेखक को रिवर्स इंजीनियरिंग से आपकी विधि और उन मूल्यों को "रोकना" नहीं रोकता है जिन्हें आप जावास्क्रिप्ट में ढूंढ रहे हैं।

मैं कहूंगा कि सबसे अच्छी विधि 1 है) एक उपयोगकर्ता को स्थापित करें ताकि आप खराब होने पर ब्लॉक कर सकें, 2) एक एल्गोरिथ्म की पहचान करें जो वेबसाइट के उपयोग के विशिष्ट पैटर्न बनाम गैर-विशिष्ट पैटर्न का पता लगाता है और 3) उस उपयोगकर्ता को तदनुसार ब्लॉक करता है।


एक बॉट ओपनआईडी रजिस्टर क्यों नहीं कर सकता है? एक हमलावर को बस अपना स्वयं का OpenID प्रकाशक बनाने की आवश्यकता होती है।
rjmunro

हां @rjmunro, और यह एक अच्छी बात है। इंटरनेट की कठिनाई अनाम उपयोगकर्ताओं की पहचान है। यदि कोई बॉट एक OpenID पंजीकृत करता है और आप उस OpenID उपयोगकर्ता को बॉट के रूप में पहचानते हैं तो आप इसे बंद कर सकते हैं। यह अब गुमनाम नहीं है। एक ही प्रदाता द्वारा कई पंजीकरणों को रोका नहीं जाता है, लेकिन फिर आप उस प्रदाता को बॉट्स की अनुमति देने के लिए बंद कर सकते हैं। लक्ष्य के रूप में सबसे अच्छा आप कर सकते हैं इंटरनेट की गुमनामी को दूर करने के लिए है।
jwendl

10

मेरे पास कुछ विचार हैं जो मुझे आपके साथ साझा करने के लिए पसंद हैं ...

OCR से बचने के लिए पहला आइडिया

एक कैप्चा जिसमें उपयोगकर्ता से कुछ छिपा हुआ भाग होता है, लेकिन पूर्ण छवि दो कोड एक साथ होती है, इसलिए ओसीआर प्रोग्राम और कैप्चा फार्म छवि को पढ़ते हैं जिसमें दृश्य और छिपे हुए भाग शामिल होते हैं, दोनों को डिकोड करने का प्रयास करें और सबमिट करने में विफल रहें। .. - मेरे पास सभी तैयार फ़िक्स हैं जो एक हैं और ऑनलाइन काम करते हैं।

http://www.planethost.gr/IdeaWithHiddenPart.gif

दूसरा आइडिया इसे और आसान बनाने के लिए

कई शब्दों के साथ एक पृष्ठ जिसे मानव को सही का चयन करना चाहिए। मैंने इसे भी बनाया है, सरल है। शब्द क्लिबल इमेज हैं, और उपयोगकर्ता को दाईं ओर क्लिक करना होगा।

http://www.planethost.gr/ManyWords.gif

छवियों के साथ तीसरा विचार

पिछले के समान, लेकिन divs और ग्रंथों या छोटे आइकन के साथ। उपयोगकर्ता को केवल एक div / पत्र / छवि पर क्लिक करना होगा, जो कभी भी।

http://www.planethost.gr/ArrayFromDivs.gif

अंतिम विचार - मैं इसे CicleCaptcha कहता हूं

और मेरा एक CicleCaptcha , उपयोगकर्ता को एक छवि पर एक बिंदु का पता लगाना चाहिए। यदि वह इसे ढूंढता है और इसे क्लिक करता है, तो एक व्यक्ति है, मशीनें शायद विफल हो जाती हैं, या इस के साथ एक रास्ता खोजने के लिए नए सॉफ़्टवेयर बनाने की आवश्यकता होती है।

http://www.planethost.gr/CicleCaptcha.gif

किसी भी आलोचक का स्वागत है।


री-कैप्चा में अपने शब्दों के लिए भाषण का पाठ है। यह आपको बता सकता है कि कहां क्लिक करना है।
रॉबर्ट पी

@RobertP जब आप नेत्रहीन हैं तब क्लिक करना जब आप नेत्रहीन हैं तो शूटिंग के बारे में है ... "बस सिर के लिए लक्ष्य"।

8
@pst "थोड़ी बाईं ओर। यह सही है, थोड़ा और अच्छा। अच्छा। अब वापस। ऊपर। नहीं, दूसरे तरीके से उठो। हां, आपको मिल गया है। बस थोड़ा और। हां। बस थोड़ा सा।" अधिक। लगभग वहाँ ... लगभग वहाँ ... लगभग ... लगभग ... कैप्चा !!!
रॉबर्ट पी


7

हाल ही में, मैंने "संदेश" के नाम और आईडी के साथ एक टैग जोड़ना शुरू किया। मैंने इसे सीएसएस के साथ छिपाया (प्रदर्शन: कोई नहीं)। स्पैम बॉट इसे देखते हैं, इसे भरें और फ़ॉर्म जमा करें। सर्वर साइड, यदि आईडी नाम के साथ textarea भरा हुआ है, तो मैं पोस्ट को स्पैम के रूप में चिह्नित करता हूं।

एक और तकनीक जिस पर मैं काम कर रहा हूं, वह है बेतरतीब ढंग से नाम और आईडी जनरेट करना, जिसमें कुछ स्पैम चेक और अन्य रेगुलर फील्ड्स हैं।

यह मेरे लिए बहुत अच्छा काम करता है, और मुझे अभी तक कोई भी सफल स्पैम प्राप्त नहीं हुआ है। हालाँकि, मुझे अपनी साइटों पर बहुत कम आगंतुक मिलते हैं :)


फॉर्म फील्ड को छिपाने के लिए css का उपयोग करना और इसे खाली करना मेरे लिए भी काम किया है। मूर्ख प्रमाण नहीं है लेकिन एक अच्छा विकल्प है।
क्रिस

तकनीक 1: Honeypot
kevinji

6

बहुत सरल अंकगणित अच्छा है। अंधे लोग जवाब दे पाएंगे। (लेकिन जैसा कि जारोड ने कहा, ऑपरेटर पूर्वता से सावधान रहें।) मैं इकट्ठा करता हूं कि कोई व्यक्ति एक पार्सर लिख सकता है, लेकिन यह स्पैमिंग को अधिक महंगा बनाता है।

पर्याप्त रूप से सरल है, और इसके चारों ओर कोड करना मुश्किल नहीं होगा। मुझे यहां दो खतरे दिखाई देते हैं:

  1. यादृच्छिक स्पैम्बोट्स और मानव स्पैम्बोट्स जो उन्हें वापस कर सकते हैं; तथा
  2. स्टैक ओवरफ्लो खेल के लिए बनाई गई बॉट

साधारण अंकगणित के साथ, आप खतरे # 1 को हरा सकते हैं, लेकिन खतरा # 2 नहीं।


एक पार्सर, मुझे लगता है, एक छवि-कैप्चा पटाखा लिखने की तुलना में काफी आसान है। याद रखें, उपयोगकर्ताओं को आप जो सबसे आसान चीज देते हैं, वह संभवत: एक स्पैम्बोट का उपयोग होगा। अफसोस की बात है कि नो-जेएस कैप्चा को और सख्त होने की जरूरत है।
स्टैलिप्रेत्जेल

5

क्या होगा यदि आपने कैप्चा विचारों के संयोजन का उपयोग किया है (उनमें से कोई भी चुनें - या उनमें से किसी एक को यादृच्छिक रूप से चुनें):

  • ASCII पाठ कैप्चा: // (_) //
  • गणित की पहेलियाँ: 7 मिनट 3 बार 2 क्या है?
  • सामान्य ज्ञान के प्रश्न: क्या बेहतर स्वाद, एक toad या एक popsicle?

पेज के css हिडन सेक्शन में सटीक कैप्चा रखने के अलावा - हनीपॉट आइडिया। इस तरह, आपके पास एक ऐसा स्थान होगा जहाँ आप सही उत्तर की अपेक्षा करेंगे और दूसरा जहाँ उत्तर अपरिवर्तित होना चाहिए।


1
"क्या स्वाद बेहतर है" काफी व्यक्तिपरक है, मेरी राय में। जो लोग स्वाद के संबंध में एक अंग पर निकलते हैं, उन्हें बॉट के रूप में व्याख्या किया जाएगा। इसके अलावा, केवल दो उत्तरों के साथ बॉट के रूप में पास होने की संभावना 50% है।
pimvdb

व्यक्तिपरक भाग पर सही, लेकिन विशेष मूल प्रश्न से था। मेरा कहना था कि तीनों (या एकाधिक) प्रकारों का उपयोग बेतरतीब ढंग से किया जाएगा। यदि उत्तर बहुविकल्पीय है तो भी, उत्तीर्ण होने की संभावना केवल 50% है। यदि आपके पास उपयोगकर्ता किसी सूची में संभावित उत्तरों को इंगित किए बिना शब्द टाइप करता है, तो बॉट के लिए प्रश्न / उत्तर में सही शब्दों को चुनना अधिक कठिन हो जाता है।
TheEmirOfGroofunkistan

5

मेरे पास एक साधारण "इस फ़ील्ड को खाली छोड़ दें:" फ़ील्ड के साथ आश्चर्यजनक रूप से अच्छे परिणाम हैं। बॉट्स सब कुछ में भरने लगते हैं, खासकर यदि आप फ़ील्ड को "URL" जैसा कुछ नाम देते हैं। सख्त रेफरल जाँच के साथ संयुक्त, मैं इसे अभी तक अतीत में एक बॉट नहीं मिला है।

कृपया यहां पहुंच के बारे में मत भूलना। स्क्रीन रीडर का उपयोग करने वाले कई लोगों के लिए कैप्चा कुख्यात हैं। साधारण गणित की समस्याएं, या बहुत मामूली तुच्छता (मुझे "क्या रंग आसमान है" सवाल पसंद है) दृष्टि-बाधित उपयोगकर्ताओं के लिए अधिक अनुकूल हैं।


5

सरल पाठ बहुत अच्छा लगता है। काम करने के लिए समुदाय को रिश्वत दें! यदि आप मानते हैं, जैसा कि मैं करता हूं, तो एसओ प्रतिनिधि बिंदु साइट को सफल बनाने में उपयोगकर्ता की प्रतिबद्धता को मापते हैं, साइट को स्पैमर्स से बचाने में मदद करने के लिए प्रतिष्ठा बिंदुओं की पेशकश करना पूरी तरह से उचित है।

एक साधारण प्रश्न के प्रत्येक योगदान और सही उत्तरों के सेट के लिए +10 प्रतिष्ठा प्रदान करें। प्रश्न को सभी मौजूदा प्रश्नों से काफी दूर (संपादित दूरी), और प्रतिष्ठा (और प्रश्न) धीरे-धीरे गायब हो जाना चाहिए अगर लोग इसका जवाब नहीं दे सकते हैं। मान लीजिए कि यदि सही उत्तरों पर विफलता की दर 20% से अधिक है, तो सबमिट करने वाला गलत प्रति प्रति एक प्रतिष्ठा बिंदु खो देता है, अधिकतम 15. तक। नेट -5। या शायद यह समझ में आता है कि उपयोगकर्ताओं का एक नमूना पूछने के लिए कि क्या कैप्चा प्रश्न एक अच्छा है।

अंत में, दैनिक प्रतिनिधि टोपी की तरह, मान लें कि कोई भी उपयोगकर्ता कैप्चा प्रश्न सबमिट करके 100 से अधिक प्रतिष्ठा अर्जित नहीं कर सकता है। इस तरह के योगदान के लिए दिए गए वजन पर यह एक उचित प्रतिबंध है, और यह स्पैमर को सिस्टम में प्रश्नों को बोने से रोकने में भी मदद कर सकता है। उदाहरण के लिए, आप समान संभाव्यता के साथ नहीं बल्कि प्रस्तुतकर्ता की प्रतिष्ठा के लिए आनुपातिक संभावना के साथ प्रश्न चुन सकते हैं। जॉन स्कीट, कृपया कोई प्रश्न सबमिट न करें :-)


5

सर्वर के लिए क्रिप्टोग्राफ़िक नॉन के लिए AJAX क्वेरी बनाएं। सर्वर नॉन से युक्त JSON प्रतिक्रिया वापस भेजता है, और नॉन वैल्यू वाले कुकी को भी सेट करता है। जावास्क्रिप्ट में नॉन के SHA1 हैश की गणना करें, एक छिपे हुए क्षेत्र में मूल्य की प्रतिलिपि बनाएँ। जब उपयोगकर्ता प्रपत्र को पोस्ट करता है, तो वे अब गैर-मूल्य के साथ कुकी वापस भेजते हैं। कुकी से नॉन की SHA1 हैश की गणना करें, छिपे हुए क्षेत्र में मूल्य की तुलना करें, और सत्यापित करें कि आपने पिछले 15 मिनट में उस नॉन को उत्पन्न किया था (इसके लिए मेमकास्ट अच्छा है)। यदि वे सभी चेक पास हो जाते हैं, तो टिप्पणी पोस्ट करें।

इस तकनीक के लिए आवश्यक है कि स्पैमर नीचे बैठ जाए और यह पता लगाए कि क्या हो रहा है, और एक बार ऐसा करने के बाद, उन्हें अभी भी कई अनुरोधों को बंद करना होगा और एक टिप्पणी प्राप्त करने के लिए कुकी राज्य बनाए रखना होगा। इसके अलावा वे कभी भी केवल Set-Cookieहेडर देखते हैं यदि वे पहले स्थान पर जावास्क्रिप्ट को निष्पादित और निष्पादित करते हैं और AJAX अनुरोध करते हैं। यह बहुत दूर है, अधिकांश स्पैमर की तुलना में कहीं अधिक काम करने के लिए तैयार हैं, खासकर जब से काम केवल एक ही साइट पर लागू होता है। सबसे बड़ा नकारात्मक पहलू यह है कि जावास्क्रिप्ट बंद या कुकीज़ अक्षम किसी को भी संभावित स्पैम के रूप में चिह्नित किया जाता है। जिसका अर्थ है कि मॉडरेशन कतार अभी भी एक अच्छा विचार है।

सिद्धांत रूप में, यह अस्पष्टता के माध्यम से सुरक्षा के रूप में योग्य हो सकता है, लेकिन व्यवहार में, यह उत्कृष्ट है।

मैंने कभी नहीं देखा कि एक स्पैमर इस तकनीक को तोड़ने का प्रयास करता है, हालांकि हो सकता है कि हर महीने में एक बार मुझे हाथ से प्रवेश करने वाला ऑन-टॉपिक स्पैम एंट्री मिले, और यह थोड़ा भयानक है।


5

1) मानव सॉल्वर

यहां उल्लिखित सभी समाधानों को मानव सॉल्वर्स दृष्टिकोण द्वारा दरकिनार किया गया है। एक पेशेवर स्पैम्बोट सैकड़ों कनेक्शन रखता है और जब वह कैप्चा को हल नहीं कर सकता है, तो यह स्क्रीनशॉट को दूरस्थ मानव सॉल्वरों को पास करता है।

मैं अक्सर पढ़ता हूं कि CAPTCHAs के मानव सॉल्वर कानून तोड़ते हैं। खैर, यह उन लोगों द्वारा लिखा गया है जो नहीं जानते कि यह (स्पैमिंग) उद्योग कैसे काम करता है।
मानव सॉल्वर सीधे उन साइटों के साथ बातचीत नहीं करते हैं, जो कैप्चा वे हल करते हैं। यहां तक ​​कि उन्हें यह भी नहीं पता है कि कौन सी साइटों पर कैप्चा लिया गया और उन्हें भेजा गया। मैं दर्जनों (यदि सैकड़ों नहीं) कंपनियों या / और मानव सॉल्वर सेवाओं की पेशकश करने वाली वेबसाइटों के बारे में अवगत हूं, लेकिन बोर्ड टूटने के साथ सीधे संपर्क के लिए एक भी नहीं।
उत्तरार्द्ध किसी भी कानून का उल्लंघन नहीं करते हैं, इसलिए कैप्चा समाधान पूरी तरह से कानूनी (और आधिकारिक पंजीकृत) व्यापारिक कंपनियां हैं। उनके पास आपराधिक इरादे नहीं हैं और उदाहरण के लिए, दूरदराज के परीक्षण, जांच, अवधारणा प्रूफिंग, प्रोटोटाइप, आदि के लिए उपयोग किया गया है।

2) संदर्भ-आधारित स्पैम

एआई (आर्टिफिशियल इंटेलिजेंट) बॉट संदर्भों को निर्धारित करते हैं और अलग-अलग आईपी पते (विभिन्न देशों के) से अलग-अलग समय पर संदर्भ संवेदनशील संवाद बनाए रखते हैं। यहां तक ​​कि ब्लॉग के लेखक अक्सर यह समझने में विफल रहते हैं कि टिप्पणियां बॉट्स की हैं। मैं कई विवरणों में नहीं जाऊंगा, लेकिन उदाहरण के लिए, बॉट मानव संवादों को रद्द कर सकते हैं, उन्हें डेटाबेस में संग्रहीत कर सकते हैं और फिर उन्हें (वाक्यांश द्वारा वाक्यांश) पुन: उपयोग कर सकते हैं, इसलिए वे सॉफ़्टवेयर या यहां तक ​​कि मनुष्यों द्वारा स्पैम के रूप में पता लगाने योग्य नहीं हैं।

सबसे अधिक वोट देने वाला उत्तर बता रहा है:

  • * "सिद्धांत यह है कि:
    • स्पैम बॉट जावास्क्रिप्ट का समर्थन नहीं करेगा और जो देखता है उसे सबमिट करेगा
    • यदि बॉट जावास्क्रिप्ट का समर्थन करता है तो यह फॉर्म को तुरंत सबमिट कर देगा
    • कमेंट करने वाले ने पोस्ट करने से पहले कम से कम कुछ पेज पढ़े "*

साथ ही हनीपोट उत्तर और इस थ्रेड में अधिकांश उत्तर सीधे सादे गलत हैं।
मेरी हिम्मत है कि वे पीड़ित-बर्बाद दृष्टिकोण हैं

अधिकांश स्पैम्बोट विभिन्न आईपी (विभिन्न देशों के) से स्थानीय और दूरस्थ जावास्क्रिप्ट-जागरूक (पैच और प्रबंधित) ब्राउज़रों के माध्यम से काम करते हैं और वे शहद के जाल और शहद के बर्तनों को दरकिनार करने के लिए काफी चतुर हैं।

अलग समस्या यह है कि ब्लॉग स्वामी अक्सर यह भी पता नहीं लगा सकते हैं कि टिप्पणियाँ बॉट से हैं क्योंकि वे वास्तव में मानव संवाद और अन्य वेब बोर्डों (मंचों, ब्लॉग टिप्पणियों, आदि) से काटे गए टिप्पणियों से हैं।

3) वैचारिक रूप से नया दृष्टिकोण

क्षमा करें, मैंने इस भाग को पहले से हटा दिया है


1
आपने इस थ्रेड पर लगभग हर उत्तर के साथ समस्या को रेखांकित किया है। यदि वे छोटी वेबसाइट के लिए अनन्य नहीं थे, तो वे सभी जल्दी से हार जाएंगे। यदि उनमें से किसी एक बड़ी वेबसाइट या कई छोटी वेबसाइटों (वर्डप्रेस प्लगइन के रूप में) का उपयोग किया गया था, तो उन्हें एक दिन में हरा दिया जाएगा। वे वास्तव में कैप्चा नहीं हैं, लेकिन अस्पष्टता के माध्यम से सुरक्षा के भाग्यशाली मामले हैं। तुम भी सही हो; आधुनिक स्पैम टिप्पणियाँ डाल रहा है कि यहां तक ​​कि मैं स्पैम के रूप में पहचान नहीं सकता। मैंने कैप्चा पर छोड़ दिया है और इसके बजाय मोलोम का उपयोग कर रहा हूं। क्राउडसोर्सिंग स्पैम एक बेहतर अप्रोच imho है।
दान

5

वास्तव में यह एक प्रोग्रामिंग से संबंधित कैप्चा सेट होने का विचार हो सकता है। उदाहरण के लिए:

कैप्चा

किसी व्यक्ति द्वारा सिंटैक्स चेकर के निर्माण की संभावना है, लेकिन यह एक कैप्चा को बायपास करने के लिए बहुत अधिक काम है। यद्यपि आपको संबंधित कैप्चा होने का विचार है।


5
सिवाय इसके: क्या आप जानते हैं कि उदाहरण प्रश्न का उत्तर (यदि कोई व्यक्ति इस मामले में बाद में ठोकर खाता है और छवि नहीं है: "कितने PHP सिंटैक्स त्रुटियां हैं $var == array(1 = 'one');;") है 1, नहीं 3? (गंभीरता से। कोशिश $var == array(1 => 'one');;) ^ _ ~
गुलाबीगोथ

हे, यह काफी लंबा हो गया है कि मुझे वह छवि बनाना याद नहीं है। आप निश्चित रूप से सही हैं, और मुझे नहीं लगता कि यह कैप्चा के रूप में बहुत अच्छा होगा - लेकिन शायद प्रोग्रामिंग मंच के लिए प्रवेश की आवश्यकता के रूप में।
रोस

4

मुझे स्वीकार करना होगा कि मुझे स्पैम्बोट से लड़ने का कोई अनुभव नहीं है और वास्तव में यह नहीं पता कि वे कितने परिष्कृत हैं। उस ने कहा, मुझे jQuery के लेख में कुछ भी नहीं दिखता है जो सर्वर पर पूरी तरह से पूरा नहीं किया जा सकता है।

JQuery लेख से सारांश को पुनःप्रकाशित करने के लिए:

  1. सर्वर पर संपर्क फ़ॉर्म बनाते समय ...
  2. वर्तमान समय को पकड़ो।
  3. उस टाइमस्टैम्प को मिलाएं, एक गुप्त शब्द, और एक 32 चरित्र 'हैश' उत्पन्न करें और इसे विज़िटर के ब्राउज़र पर कुकी के रूप में संग्रहीत करें।
  4. छिपे हुए फॉर्म टैग में हैश या 'टोकन' टाइमस्टैम्प स्टोर करें।
  5. जब फॉर्म वापस पोस्ट किया जाता है, तो टाइमस्टैम्प के मूल्य की तुलना कुकी में रखे गए 32 कैरेक्टर 'टोकन' से की जाएगी।
  6. यदि जानकारी मेल नहीं खाती है, या गायब है, या यदि टाइमस्टैम्प बहुत पुराना है, तो अनुरोध का निष्पादन रोक दें ...

एक अन्य विकल्प, यदि आप पारंपरिक छवि CAPTCHA का उपयोग करना चाहते हैं, तो उन्हें हर अनुरोध पर जनरेट करने के ओवरहेड के बिना उन्हें ऑफ़लाइन पूर्व-जेनरेट करना है। फिर आपको बस प्रत्येक फ़ॉर्म के साथ प्रदर्शित करने के लिए यादृच्छिक रूप से एक को चुनना होगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.