2010-09-08 23 views
9

ईमेल मकड़ियों द्वारा वेब पृष्ठों से एकत्रित ईमेल को आप कैसे रोकते हैं? क्या mailto: उन्हें जोड़ने से उन्हें उठाए जाने की संभावना बढ़ जाती है? यूआरएल-एन्कोडिंग उपयोगी है?स्पैम बॉट/वेब क्रॉलर से ईमेल पते की सुरक्षा

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

+0

समाधान भाग के लिए, यहां देखें: http: // stackoverflow।कॉम/प्रश्न/308772/कुछ-तरीके-से-रक्षा-ईमेल-ऑन-वेबसाइट-स्पैमबॉट्स –

+0

मुझे यकीन नहीं है कि ईमेल obfuscation इतना अच्छा समाधान है (जैसा ऊपर @ यी की टिप्पणी में प्रदान किया गया है लेकिन @ जेम्स ब्लैक जहां भी संभव हो, ईमेल फॉर्म का उपयोग करने और संदेश को संसाधित करने के लिए सर्वर साइड कोड का उपयोग करने के बारे में सही है। –

उत्तर

1

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


यह study on various email obfuscation methods देखें।

2

मैं mailto से बचने के लिए जाता हूं क्योंकि यह लोगों के ईमेल पते को फसल करने में बहुत आसान बनाता है।

यदि आप अपनी वेबसाइट पर संपर्क पृष्ठ प्राप्त करने जा रहे हैं, तो बस एक फॉर्म है, और जब वे आपके सर्वर-साइड कोड जमा करते हैं और उचित ईमेल पते का उपयोग करते हैं।

यदि आपको अन्य लोगों के पते उपलब्ध कराने में सक्षम होना चाहिए, तो संख्याओं, नामों, उपयोगकर्ता नामों का उपयोग करें, उन्हें पहचानने के लिए कुछ तरीका।

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

अधिकांश रहस्यों के साथ, यदि आप नहीं चाहते हैं कि अन्य उन्हें प्राप्त करें, तो उन्हें पृष्ठ पर न रखें।

+0

ईमेल पेज पर हैं, में। ईमेल पते को हटाने के अलावा, क्या कुछ भी है ईमेल मकड़ियों द्वारा उठाए जाने की संभावना को कम करने के लिए क्या कर सकते हैं? – Zaz

5

अधिकांश ईमेल मकड़ियों, जावास्क्रिप्ट दुभाषिए की जरूरत नहीं है, इसलिए यदि आप वास्तव में जरूरत है mailto: आप इसे जावास्क्रिप्ट के साथ इंजेक्षन कर सकते हैं ... बस सुनिश्चित पते जावास्क्रिप्ट में किसी भी तरह अस्पष्ट है, उदाहरण के लिए कर

myLink.href='mai'+'lto:'+'bob' 
      +'@' 
      +'example.com'; 

आप पृष्ठ पर ईमेल पता प्रदर्शित करने के लिए की जरूरत है, एक आम समाधान php के जीडी की तरह कुछ का उपयोग कर एक छवि उत्पन्न करने के लिए (हालांकि जावास्क्रिप्ट इंजेक्शन भी इस के लिए ठीक से काम करना चाहिए) है।

विचार HTML से ईमेल पते को निकालना और उन्हें जावास्क्रिप्ट से इंजेक्ट करना है। इस तरह से ईमेल पता किसी भी HTTP यातायात में अपने मूल रूप में प्रकट नहीं होता है, जो स्पाइडर देख रहा है।

+0

धन्यवाद, यह करने का यह एक चालाक तरीका है। – Zaz

+0

फिर आपको इस पृष्ठ का उपयोग करने के लिए जावास्क्रिप्ट की आवश्यकता है, जो आपके उपयोगकर्ताओं को कम कर सकता है। –

1

मैं आमतौर पर उन्हें अलग-अलग हिस्सों में विभाजित करता हूं और फिर जावास्क्रिप्ट का उपयोग करके उन्हें फिर से जोड़ता हूं। अंतिम जावास्क्रिप्ट HTML को लिखने के लिए एक दस्तावेज़। लिखता है।

$(".email").each(function() { 
    $(this).html($(this).html().replace("...", "@").replace(/\.\.\./g, ".")); 
    $(this).attr("href", $(this).attr("href").replace("...", "@").replace(/\.\.\./g, ".")); 
}); 

ईमेल एक के रूप में लिखा जाता है:

<a href="mailto:bob.smith...example...com" class="email">bob.smith...example...com</a> 

यह सही नहीं है

यानी

var mail = "mailto"; 
var namepart = "test.user"; 
var domainpart = "example"; 
var tld = "com"; 
var address = namepart + "@" + domainpart + "." + tld; 
document.write("<a href=" + mail + ":" + address + '">' + address + "</a>";