2009-08-02 13 views
6

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

क्या इनमें से कोई अदृश्य-टू-यूजर विकल्प हैं? आपकी सहायता के लिए धन्यवाद.

उत्तर

6

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

+1

स्पष्टीकरण के लिए, 'छुपा' इनपुट फ़ील्ड सीएसएस (स्टाइलशीट, इनलाइन शैली नहीं) द्वारा छिपाया जाना चाहिए, या बेहतर अभी तक, जावास्क्रिप्ट (हालांकि केवल जावास्क्रिप्ट आपकी साइट का एक आवश्यक हिस्सा है)। 'इनपुट प्रकार = छुपा' करना किसी भी बॉट को फॉलो नहीं करेगा। – ChssPly76

+1

बस संदर्भ के लिए, इस तकनीक को एक हनीपॉट कहा जाता है। – cletus

+0

मैं ऐसा नहीं करता कि बॉट को बेवकूफ़ बनायेगा। आप आसानी से जेएस का उपयोग यह जांचने के लिए कर सकते हैं कि कोई फ़ील्ड छिपा हुआ है या नहीं (भले ही यह सीएसएस द्वारा छिपा हुआ हो)। इसके अलावा आप मानते हैं कि सभी फ़ील्ड बॉट्स से भरे जाएंगे, इसलिए यह आपको उनमें से कुछ को भरने वाले बॉट से आपकी सुरक्षा नहीं करता है। – RaYell

0

कैपेचा का विचार यह है कि इंसानों के पास जाने के लिए वे बहुत आसान हैं लेकिन बॉट आदि के लिए बहुत अलग हैं। यदि आप इस तरह के समाधान नहीं चाहते हैं तो उन स्पैम-बॉट्स को आपकी साइट पर पोस्ट करने से क्या रखा जाएगा?

ऐसा लगता है कि आप अपने कंप्यूटर को सुरक्षित रखना चाहते हैं लेकिन आप एंटीवायरस और फ़ायरवॉल का उपयोग नहीं करना चाहते हैं।

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

0

एंटी-स्पैम सुरक्षा के दो वर्ग हैं।

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

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

ध्यान दें कि ये दोनों दृष्टिकोण अक्षम और मोबाइल उपयोगकर्ताओं को अक्सर बाधित कर सकते हैं।

2

यह मेरे लिए समय की 100% काम किया है:

<input type="text" style="display:none" name="email" value="do not fill this in it is for spam catching" /> 

तो सर्वर साइड (PHP):

if($_POST['email'] != 'do not fill this in it is for spam catching') { 
    // spam 
} 

जैसा कि पहले उल्लेख किया है, सबसे बॉट में सब कुछ को भरने, विशेष रूप से नामित आदानों " ईमेल"।

+0

हालांकि वे पहले से ही पर्याप्त इनपुट भरने के लिए पर्याप्त स्मार्ट हो सकते हैं। मेरी राय में इसे खाली छोड़ने के लिए बेहतर है। – MitMaro

+0

बहुत अच्छा बिंदु। यह मेरी साइटों पर इस पल के लिए पूरी तरह से काम कर रहा है। अगर (जब) ​​दिन आता है कि बॉट इस विधि को आगे बढ़ाते हैं, तो मैं निश्चित रूप से कुछ और के लिए जाऊंगा। मैं वहां पहुंच के लिए वहां जाता हूं। –

8

स्पैमर के बारे में आपको एक बात पता होना चाहिए कि वे हमेशा कम लटकते फल के लिए जाते हैं। हैकर्स के साथ ही। इसका मतलब है कि वे सबसे अधिक उपयोगकर्ताओं को प्रभावित करने वाले लक्ष्य को हिट करने के लिए सबसे आसान चुनेंगे। यही कारण है कि PHP और विंडोज भेद्यता का अक्सर शोषण किया जाता है: वे इतने सारे उपयोगकर्ताओं को प्रभावित करते हैं कि यदि आपको ऐसी कमजोरी मिलती है/आपका लक्ष्य "बाजार" का शोषण बहुत बड़ा होता है।

यह कारण का एक बड़ा हिस्सा भी है कि लिनक्स और मैक ओएस वायरस द्वारा अपेक्षाकृत बेकार क्यों रहते हैं: लक्ष्य बाजार बहुत विंडोज से छोटा है। अब मैं मैक/लिनक्स के साथ विंडोज की सुरक्षा और मजबूती को समझा नहीं रहा हूं, लेकिन बाद के दो के सुरक्षा मॉडल बहुत बेहतर हैं, लेकिन पूर्व के खिलाफ हमलों की संख्या अभी भी कमियों के साथ असमान है।

मैं यह कहता हूं क्योंकि इस तरह की समस्याओं से बचने के सर्वोत्तम तरीकों में से एक लोकप्रिय सॉफ्टवेयर का उपयोग नहीं करना है। उदाहरण के लिए phpBB के खिलाफ बहुत सारे हमले हुए हैं क्योंकि यह बहुत लोकप्रिय है।

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

तो मैं सलाह होगा:

  • जवाब है कि भीतर आने उपयोगकर्ता के लिए प्रपत्र भेजने के 5-10 सेकंड कहना उपेक्षा कर;
  • एक हनीपॉट (सीएसएस/जेएस छुपा फ़ील्ड कहीं और वर्णित) का उपयोग करना;
  • जावास्क्रिप्ट का उपयोग करना जहां फॉर्म प्रस्तुत करना, पुन: व्यवस्थित करना या प्रदर्शित करना;
  • गैर-पूर्वानुमानित फॉर्म फ़ील्ड नामों का उपयोग करना; और
  • आईपी द्वारा खराब प्रतिक्रियाएं थ्रॉटल करें।
+1

मुझे लगता है कि हनीपॉट और टाइमर रक्षा का संयोजन एक अच्छी शुरुआत होगी। मैं टाइमर कैसे कार्यान्वित करूं? – SpleenTea

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