2009-10-01 22 views
10

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

  1. यदि आगंतुक में
  2. का पता लगाने के लिए माउस घटनाओं
  3. का पता लगा रहा उपयोगकर्ता एक ब्राउज़र [उपयोगकर्ता एजेंट]
  4. का पता लगाने माउस क्लिक किया है, तो लॉग इन और पारित हो जाता है कैप्चा [कैसे मैं इस बारे में जाना होगा?]

क्या आगंतुक यह पता लगाने के लिए कोई और निश्चित तरीका है कि आगंतुक मानव है या नहीं?

+34

पूछें कि यह कितने पैरों को मिला है। –

+0

अच्छा एक, निक। हास्य प्यार करो ... +1 – pixelbobby

+0

- Merci, Amigos! –

उत्तर

10

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

नाइस रोबोट 'रोबोट' मेटा टैग पढ़ेंगे और आपकी नीति का अनुपालन करेंगे। किसी भी इंडेक्स को किसी भी प्रकार की सेवाओं से इनकार करने का विनम्र तरीका नहीं है।

दूसरी तरफ दुर्भावनापूर्ण रोबोट नकली जा रहे हैं "UserAgent" और इसी तरह के शीर्षलेख।

कैप्चा शायद संभवतः सबसे अच्छी विधि है लेकिन यदि उपयोग किए जाने पर वे गैर रोबोट बंद कर सकते हैं।

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

+5

+1। –

0

उपयोगकर्ता को एक प्रश्न पूछें जैसे "3 + 5 क्या है?"

+0

बेहतर पूछें: आप कौन हैं? किसने तुम्हें बनाया ... lol – eglasius

+0

मैं इससे असहमत हूं क्योंकि यह स्पष्ट रूप से उपयोगकर्ता अनुभव को बाधित करेगा। यह सिर्फ एक कैप्चा भरने के लिए पर्याप्त दर्द है। हालांकि, अगर इससे कोई फर्क नहीं पड़ता तो यह निश्चित रूप से एक समाधान होगा। – pixelbobby

+0

उसने पूछा कि क्या कोई अन्य तरीके नहीं थे? lol –

8

स्पाइडर का पता लगाने का सबसे विश्वसनीय तरीका आईपी पता है। आम मकड़ी कई आम तौर पर ज्ञात आईपी पते का उपयोग करते हैं। http://www.iplists.com/nw/

+0

एक दया यह सूची अद्यतन नहीं की गई है, उदाहरण के लिए बीआईएन का कोई उल्लेख नहीं है! हालांकि, यह एक अच्छा प्रारंभिक प्लेक है जो मुझे लगता है। – MyDaftQuestions

0

याद रखें, जो भी आप करते हैं, आप इसे स्वचालित प्रक्रिया के लिए कठिन बना रहे हैं, इसका मतलब यह नहीं है कि आप इसे पूरी तरह से रोक रहे हैं।

माउस घटनाओं के संबंध में, वे चीजें हैं जो क्लाइंट पक्ष पर होती हैं, इसलिए आप केवल अनुरोध में जानकारी जोड़ रहे होंगे।

2

आपको उपयोगकर्ता-एजेंट संपत्ति की जांच करनी चाहिए। आप इसे सी # में पूरा कर सकते हैं।

उदाहरण के लिए HttpContext.Current.Request... और उसके बाद उपयोगकर्ता-एजेंट से पूछें। यह आपको क्रॉलरफ़ोर्फ़ की तरह कुछ दे सकता है या आप क्या कर सकते हैं ताकि आपको परिणाम देखने और वापस करने के लिए अपनी खुद की सूची बनाना पड़े।

+1

दुर्भावनापूर्ण या गलत व्यवहार करने वाले बॉट इंटरनेट एक्सप्लोरर या फ़ायरफ़ॉक्स को खराब कर देंगे जो इस विधि को अविश्वसनीय बनाते हैं। उनके लिए स्टॉकिंग में –

+5

अच्छी तरह से कोयले! – pixelbobby

+1

@ टिम तो आप इस प्रश्न के बाद होंगे: मांस आधारित एजेंटों के लिए http://stackoverflow.com/questions/233192/detecting-stealth-web-crawlers –

0

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

0

या तो कैप्चा का उपयोग करें या सत्यापित करने के लिए जावास्क्रिप्ट का उपयोग करें। बॉट्स का एक बड़ा प्रतिशत जावास्क्रिप्ट का मूल्यांकन नहीं करता है।

2

यदि आप मुख्य रूप से फॉर्म सत्यापन पर चिंतित हैं ... मैं Akismet - स्पैम पकड़ने के लिए WordPress मुक्त सेवा का सुझाव दूंगा।ये अच्छी तरह काम करता है।

यदि आप कुछ बैंडविड्थ सर्वर को सहेजने की कोशिश कर रहे हैं ... सवाल पूरी तरह से अलग है और शायद मैं हॉट-लिंकिंग को रोकने की तरह एक और तरीका जाऊंगा।

यह कहा गया कि, कोई समाधान सही नहीं है, लेकिन आपको उस स्तर से चिपकने का प्रयास करना चाहिए जो आपको न्यूनतम स्तर और आराम से आपके उपयोगकर्ताओं को प्रदान करता है। यह सब उपयोगकर्ताओं के बारे में है।

1

यदि आप कैप्चा मार्ग पर जा रहे हैं तो आप हमेशा अदृश्य कैप्चा का उपयोग कर सकते हैं।

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

गूगल एनालिटिक्स जे एस पर काम करता है तो आप सिर्फ इतना है कि इस्तेमाल कर सकते हैं?

15

a new captcha approach

कॉमिक स्ट्रिप XKCD से है।

+2

पूरी तरह से भयानक। – pixelbobby

+2

http://xkcd.com/license.html –

1

आप HttpCapabilitiesBase Class में देखना चाहते हैं, वहां कुछ सहायता पूर्ण संपत्तियां हैं जिनका उपयोग आप करने में सक्षम हो सकते हैं और आपकी साइट ब्राउज़ करने वाले लोग नोटिस नहीं करेंगे।

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

1

चूंकि यह पृष्ठ हिट लॉगिंग के बारे में एक प्रश्न है, मुझे लगता है कि कैप्चा का उपयोग आक्रामक है। वेबसाइट का उपयोग करने से पहले आप प्रत्येक विज़िटर को कैप्चा या लॉगिंग में भर नहीं सकते हैं।

और क्या आप मकड़ियों को पूरी तरह अवरुद्ध करना चाहते हैं या बस उन्हें अपने लॉग में अनदेखा करना चाहते हैं?

Google Analytics जावास्क्रिप्ट संचालित होने के कारण बॉट को अनदेखा करने का एक अच्छा उदाहरण है।

यह आपका समाधान हो सकता है। पेज हिट लॉग ऑन करने वाले आपके सर्वर से अनुरोध भेजने के लिए आपको एक लोड लोड ईवेंट की आवश्यकता होगी।

आप इसे हिट लॉग करने से पहले माउस चाल पर भी इंतजार कर सकते हैं।

0

आप उपयोगकर्ता एजेंट तारों का उपयोग करके बहुत विश्वसनीय रूप से ज्ञात बॉट/क्रॉलर का पता लगा सकते हैं। 'खराब बॉट' को हनीपॉट या इसी तरह के समाधान की आवश्यकता होती है। दोनों मेरा उत्तर यहाँ में विस्तार से बताया:

Detecting honest web crawlers

आईपी के बदला जा सकता है और विश्वसनीय नहीं हैं।

हम यह भी देखते हैं कि बॉट (अच्छे और बुरे) जावास्क्रिप्ट का समर्थन नहीं करते हैं।

संबंधित मुद्दे