एक वेबसाइट पर ई-मेल पते को बाधित करने का सबसे अच्छा तरीका?


136

मैंने पिछले कुछ दिन अपनी निजी वेबसाइट को अपडेट करने में बिताए हैं। मेरी व्यक्तिगत वेबसाइट का URL (मेरा पहला नाम) है। (मेरा अंतिम नाम) .com, जैसा कि मेरा अंतिम नाम असामान्य है, और मैं बहुत भाग्यशाली था कि मैंने डोमेन नाम चुना। मेरा ई-मेल पता (मेरा पहला नाम) @ (मेरा अंतिम नाम) .com है। तो वास्तव में, जब यह अनुमान लगाने के लिए नीचे आता है, तो यह बहुत मुश्किल नहीं है।

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

मेरे लिए अपने ई-मेल पते को प्राथमिकता देने का सबसे अच्छा तरीका क्या है, अधिमानतः लिंक फॉर्म में? मेरे द्वारा ज्ञात तरीके हैं:

<a href="mailto:x@y.com">e-mail me</a>

यह काम करता है, लेकिन इसका मतलब यह भी है कि जैसे ही मेरी वेबसाइट Google को हिट करती है, मैं स्पैम के माध्यम से जा रहा हूँ क्योंकि स्पैम बॉट आसानी से मेरा ई-मेल पता निकालते हैं।

<img src="images/e-mail.png" />

यह कम वांछनीय है, क्योंकि न केवल आगंतुक मुझे ई-मेल भेजने के लिए उस पर क्लिक करने में असमर्थ होंगे, लेकिन होशियार स्पैम बॉट संभवतः उन पात्रों का पता लगाने में सक्षम होंगे जो छवि में हैं।

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


10
संदेश को अपने GMail खाते में अग्रेषित करें। ;-)
डेव जार्विस


इस पोस्ट को यहाँ जोड़ा जाना चाहिए।
क्लेमेंट

जवाबों:


106

मैं HTML संस्थाओं के रूप में वर्णों को सांकेतिक शब्दों में बदलना ( कुछ इस तरह )। इसके लिए जेएस को सक्षम करने की आवश्यकता नहीं है और लगता है कि अधिकांश स्पैम बंद हो गए हैं। मुझे लगता है कि एक स्मार्ट बॉट अभी भी इसे काट सकता है, लेकिन मुझे कोई समस्या नहीं है।


6
यह स्पैम्बोट फ़सल कटाई (किसी भी टेक्स्ट की तलाश में लगने वाला ई-मेल और ई-मेल पता) के सबसे सरल प्रकार को रोकता है, और इसका कोई नकारात्मक पहलू नहीं है: यह अंतिम उपयोगकर्ता के लिए उतना ही सुविधाजनक है जितना कि खोज href = mailto: xxx "yy लिंक।
स्टीफन सी। स्टील

5
यह बहुत अच्छी तरह से काम करता है क्योंकि क्रॉलर्स / हार्वेस्टर के कई (सबसे अधिक) अविश्वसनीय रूप से बेवकूफ हैं।
जैको

43
2008 के इस अनुभवजन्य अध्ययन के अनुसार , URL एनकोड अगले-से-कम प्रभावी था। केवल सादा पाठ बदतर था।
फुहारमेनटर

16
मुझे पता है कि यह देर हो चुकी है, लेकिन यह इंगित करने योग्य है कि यहां सुझाव HTML संस्थाओं का उपयोग करने के लिए था, जो URL एन्कोडिंग से अलग हैं। उस अध्ययन के अनुसार, @ और अवधियों के लिए संस्थाओं का उपयोग करना दूसरा सबसे प्रभावी तरीका था (सबसे प्रभावी तीन तरीके थे जो पहली बार बंधे थे, जिसके परिणामस्वरूप सभी 0 स्पैम संदेश थे)। यह देखना दिलचस्प होगा कि क्या यह अभी भी लगभग 6 साल बाद है।
बेली पार्कर

12
मुझे यह विडंबनापूर्ण लगता है कि आपके ईमेल को सुरक्षित रखने के लिए आपको इसे साइट पर एक यादृच्छिक, छायादार-रूप में दर्ज करना होगा। हनीपोटिंग, कोई भी? :)
सर्बिन्सन

84

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


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

8
@ मेरे अनुभव में यह मामला नहीं रहा है। मैं अपने डोमेन के लिए Google होस्टेड मेल का उपयोग करता हूं और मेरा ईमेल पता ढूंढना बेहद आसान है। मेरे पास 0 झूठे नकारात्मक और 1 झूठे सकारात्मक हैं क्योंकि मैंने 14 महीने से अधिक समय से इसका उपयोग करना शुरू कर दिया था। मुझे अपने स्पैम फ़ोल्डर में एक दिन में कई सौ स्पैम मिलते हैं।
रेक्स एम

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

1
@ ब्रैड: यदि यह अनावश्यक है, तो अपना पता बिल्कुल न दें। यदि अपना पता देना आवश्यक है, तो स्पैम के लिए तैयार रहें। आप इसे ईमेल करने के लिए एक मानव के लिए भी आसान नहीं बना सकते हैं, यह आसान नहीं है।
चक

1
मैं अभी भी अपने ईमेल को बिना सोचे-समझे पोस्ट करता हूं। मैं gmail का उपयोग करता हूं, और स्पैम फ़िल्टर उल्लेखनीय रूप से अच्छी तरह से काम करता है।
असमर

68

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

इस तथ्य का तथ्य यह है कि यदि आप एक ऐसा लिंक प्रदान कर रहे हैं, जिस पर उपयोगकर्ता अपने ईमेल क्लाइंट को To: फ़ील्ड में अपने पते के साथ खोलने के लिए पॉप पर क्लिक कर सकता है, तो कंप्यूटर पेज से ईमेल पते को समझने में सक्षम है और इसलिए एक स्पैम बॉट।


2
कहने का तात्पर्य यह है कि ईमेल भेजने के तर्क को छिपे हुए सर्वर-साइड कोड में लिखा जाना चाहिए ताकि पता कभी सार्वजनिक न हो।
जोश जोर्डन

8
जबकि यह एक अच्छा समाधान है, तकनीकी रूप से, यह एक ऐसा समाधान है जो कई उपयोगकर्ताओं के लिए अपमानजनक है। मैं तो बस कह रहा हूं'।
आंखों की रोशनी

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

15
मैं हमेशा इसे पसंद करता हूं जब आपको संदेश को सीसी करने का विकल्प होता है। एक बात जो मुझे संपर्क रूपों के बारे में परेशान करती है, वह यह है कि यह मेरे स्वयं के ईमेल सिस्टम में कोई रिकॉर्ड नहीं छोड़ता है। (हालांकि एक ऐसा फ़ॉर्म जो किसी भी ईमेल पते को CC करता है, यह समस्याओं का स्वयं सेट बना सकता है।)
सैम हस्लर

6
यह भी कोई संकेत नहीं है कि ईमेल फॉर्म वास्तव में काम करता है। मैंने बहुत सारे देखे हैं जो चुपचाप टूट गए थे। वास्तविक ईमेल बाउंस, कम से कम।
ब्रायन कार्टर

44

आपने बताया कि यह आपकी निजी वेबसाइट के लिए है। मेरी व्यक्तिगत साइट पर (उदाहरण के लिए, bobsomers.com) मेरे पास बस एक पैराग्राफ है जो यह कहता है:

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

लोगों को लगता है कि यह ठीक है, क्योंकि मुझे हर समय वैध ईमेल मिलता है। कभी-कभी सर्वश्रेष्ठ समाधानों को किसी भी कोड को लिखने की आवश्यकता नहीं होती है। :)


7
यह विधि एक निश्चित स्तर से कम बुद्धि वाले लोगों को भी फ़िल्टर करती है: D
पापा ज़ुलु

36

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

कैप्चा हल हो जाने के बाद, आपका ईमेल पता एक href / mailto के रूप में दिखाई देता है, ताकि इसे उन उपयोगकर्ताओं द्वारा क्लिक / पीछा किया जा सके जिन्होंने अपने ब्राउज़र के साथ काम करने के लिए अपने ईमेल क्लाइंट को कॉन्फ़िगर किया है।


यह बहुत अच्छा है और इस समय 99.9% काम करेगा। के लिंक के लिए धन्यवाद। यह विफल हो जाएगा जब बॉट एक ब्राउज़र को स्वचालित कर रहा है।
IEnumerator

9
मुझे नहीं लगता कि अधिकांश वेब उपयोगकर्ता किसी को ईमेल करने के लिए कैप्चा को हल करने के प्रयास में जाएंगे।
एंडीएम

7
मैं इस पर एंडी के साथ हूं। कैप्चा एक दर्द है, और reCAPTCHA औसत से भी बड़ा दर्द है क्योंकि वे अक्सर पढ़ने में बहुत कठिन होते हैं। यदि आप लोगों को ईमेल करते हैं तो यह एक रूपांतरण बिंदु है (उदाहरण के लिए, ग्राहकों को सेवाओं, ऑर्डर या एक उद्धरण के बारे में पूछताछ करने की अनुमति देता है), आप वास्तव में ऐसा करना उनके लिए जितना संभव हो उतना आसान बनाना चाहते हैं।
सिल्वरड्रैग

8
सेवा अब मौजूद नहीं है।
सोरिन

Google Mailhide को 31 मार्च, 2018 से बंद कर दिया गया है।
शॉन

18

एक hrefएंकर की बात मानने का एक हल्का तरीका यह है कि इसे64- एनकोड करें:

> btoa('mailto:email@example.com')
< "bWFpbHRvOmVtYWlsQGV4YW1wbGUuY29t"

और फिर इसे हार्डकोड में शामिल करें:

<a href="javascript:window.location.href=atob('bWFpbHRvOmVtYWlsQGV4YW1wbGUuY29t')">E-Mail</a>

या PHP में गतिशील रूप से सर्वर-साइड जैसे:

<a href="javascript:window.location.href=atob('<?= base64_encode("mailto:email@example.com") ?>')">E-Mail</a>

स्ट्रिंग रिवर्स के साथ संयोजन में यह बहुत स्पैम-बचा सकता है:

<a href="javascript:window.location.href=atob('<?= base64_encode("mailto:email@example.com") ?>')" style="unicode-bidi: bidi-override; direction: rtl;"><?= strrev("email@example.com") ?></a>

14

जाहिरा तौर पर आपके पाठ की दिशा बदलने के लिए CSS का उपयोग करना बहुत अच्छी तरह से काम करता है। उस लिंक में अन्य ऑबफ्यूजन विधियों का एक गुच्छा भी है।

आप जो भी उपयोग करते हैं वह अनिवार्य रूप से पराजित होने वाला है। आपका प्राथमिक उद्देश्य होना चाहिए कि आप अपने उपयोगकर्ताओं से बाहर निकले कष्टों को दूर करें।


4
यह कॉपी और पेस्ट हो सकता है? IIRC
एलेक्स

7
जब पता कॉपी-पेस्ट किया जाता है, तो यह पीछे की ओर दिखाई देगा। यह उपयोगकर्ताओं के लिए ऑफ-पुट हो सकता है, यदि आप चाहते हैं कि यह आपसे संपर्क करना जितना आसान हो सके।
ईसाई डेवन

10

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


8
कितना पुनरावर्ती है।
पॉल टॉम्बलिन

Unniloct: सैम हस्लर का अन्वेषक इस बात की परवाह किए बिना लागू होता है कि शीर्ष उत्तर क्या है। सबसे लोकप्रिय ऑबफिकेशन तकनीक के साथ जाकर, आप कटाई के सबसे संभावित लक्ष्य के साथ जा रहे हैं।
आंखों की रोशनी

जब तक शीर्ष उत्तर वास्तव में
आपत्तिजनक

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

2
वर्तमान में यह पृष्ठ [obfuscate ई-मेल पते] के लिए Google द्वारा लौटाया गया 28 वां परिणाम है, हालांकि मुझे उम्मीद है कि यह अंततः उच्चतर वृद्धि करेगा।
सैम हसलर

8

आप Google कोड (और समूह) पर Google की तरह कर सकते हैं। ईमेल, और एक क्लिक करने योग्य भाग ("...") को प्रदर्शित करें। उस क्लिक को इंगित करता है जिसे आप ईमेल जानना चाहते हैं, और आपको कैप्चा भरने के लिए कहा जाता है। बाद में ईमेल (और अन्य?) आपको दिखाई देते हैं।


8

मेरा वास्तव में सरल है:

<h3 id="email">hello@gmail.com</h3><!-- add a fake email -->


    $(document).ready(function(){
//my email in reverse :)
            var s = 'moc.elibomajninbew@htiek';
            var e = s.split("").reverse().join("");
            $('#email').html('<a href="mailto:'+e+'">'+e+'</a>');
    });

9
गरीब आदमी जो hello@gmail.com :) का मालिक है
duedl0r

2
5 अक्षरों वाले जीमेल पर कोई ईमेल नहीं हैं।
पाउलो नेई

6

मैं उदाहरण के लिए जावास्क्रिप्ट का उपयोग करता हूं, इस पर एक नज़र डालें:

http://www.jottings.com/obfuscator/


2
-1: क्या आपने उस कोड को देखा है जो यह उत्पन्न करता है? यदि आप इसे "लिंक टेक्स्ट" में शामिल करते हैं, तो यह आपके ईमेल पते को वास्तव में बाधित नहीं करता है, और "mailto:" के साथ अपने उद्देश्य को पूरा करता है। इससे भी बदतर, यह एक समाधान है जिसे जावास्क्रिप्ट की आवश्यकता होती है, जिसे मूल सामग्री के लिए निर्भर नहीं होना चाहिए।
आंखों की रोशनी

6

एक वेबसाइट जिसे मैं बनाए रखता हूं वह स्पैम्बोट्स को बनाए रखते हुए (उम्मीद के मुताबिक) कुछ हद तक सरल जावास्क्रिप्ट का उपयोग करता है।

ईमेल लिंक जेएस फ़ंक्शन को कॉल करते हैं:

फ़ंक्शन sendEmail (नाम, डोमेन) {
    location.href = 'mailto:' + name + '@' + डोमेन;
}

केवल यह सुनिश्चित करने के लिए कि जिन उपयोगकर्ताओं के पास जेएस सक्षम है वे लिंक देख सकते हैं, उन्हें इसके साथ लिखें:

फ़ंक्शन राइटमेलइमेललिंक (असली नाम, नाम, डोमेन) {
    document.write ('<a href = "javascript: sendEmail (\')
      + नाम + '\', \ '' + डोमेन + '' ') ">');
    document.write (realName);
    document.write ( '</a>');
}   

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


4

ऊपर एक पोस्टर के रूप में, मैं भी jottings वेबसाइट से जावास्क्रिप्ट obfuscation का उपयोग करें

वेब पेज कुछ जावास्क्रिप्ट उत्पन्न करता है जिस पर सुधार किया जा सकता है। mailto:पाठ स्ट्रिंग में है स्पष्ट और रोबोटों द्वारा पहचाने जाने योग्य (जो इस स्थान और इस स्ट्रिंग को स्पष्ट कर सकते हैं), लेकिन अगर एक फार्म के jottings.com वेबपेज एक ईमेल पते में प्रवेश करती है mailto:addr@site.tldके बजाय addr@site.tldऔर फिर पाठ को हटाmailto:उत्पन्न होने वाले जावास्क्रिप्ट से, किसी के पास अचानक कुछ जावास्क्रिप्ट होता है जो ऐसा नहीं दिखता है क्योंकि इसका ईमेल पर कुछ भी नहीं है - बस यादृच्छिक जावास्क्रिप्ट जिसमें से वेब भरा हुआ है। लिंक टेक्स्ट से छुटकारा पाकर कोई भी इसे और बेहतर कर सकता है - मैंने अपने ईमेल पते की एक छवि द्वारा मेरा स्थान ले लिया जो कि काफी अस्पष्ट फ़ॉन्ट में है। तो बस अगर यह विधि jottings.com पर लोकप्रिय हो जाती है, तो मैंने आउटपुट जावास्क्रिप्ट में चर नामों को यादृच्छिक बना दिया, जिससे रोबोट के लिए हार्डकोर कोडिंग जेनरेट किए गए जावास्क्रिप्ट कोड का उदाहरण दिया जा सके।

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

एक उदाहरण यह थोड़ा और स्पष्ट कर सकता है। मैंने अश्लील "सेंड मी ईमेल" से पाठ के साथ mailto:foo@bar.comजोटिंग वेबसाइट के मूल आशय पर ध्यान दिया जा रहा है (नोट के mailto:foo@bar.comबजाय मैं स्ट्रिंग में प्रवेश करके जाटिंग्स वेबसाइट के मूल इरादे पर धोखा दे रहा हूँ foo@bar.com) का उपयोग किया, जो कि इस जावास्क्रिप्ट में बदल गया:

<script type="text/javascript" language="javascript">
<!--
// Email obfuscator script 2.1 by Tim Williams, University of Arizona
// Random encryption key feature by Andrew Moulden, Site Engineering Ltd
// This code is freeware provided these four comment lines remain intact
// A wizard to generate this code is at http://www.jottings.com/obfuscator/
{ coded = "3A1OTJ:rJJ@VAK.GJ3"
  key = "J0K94NR2SXLupIGqVwt8EZlhznemfaPjs7QvTB6iOyWYo3rAk5FHMdxCg1cDbU"
  shift=coded.length
  link=""
  for (i=0; i<coded.length; i++) {
    if (key.indexOf(coded.charAt(i))==-1) {
      ltr = coded.charAt(i)
      link += (ltr)
    }
    else { 
      ltr = (key.indexOf(coded.charAt(i))-shift+key.length) % key.length
      link += (key.charAt(ltr))
    }
  }
document.write("<a href='mailto:"+link+"'>Send Me Email</a>")
}
//-->
</script><noscript>Sorry, you need Javascript on to email me.</noscript>

मुझे वह वापस मिलने के बाद, मैंने उसे एक संपादक में पेस्ट किया और:

  1. हटाए mailto:
  2. मेरे ईमेल पते की एक छवि के लिए सूचक के साथ लिंक पाठ को बदलें
  3. सभी चर का नाम बदलें
  4. "noscript" सेक्शन को ईमेल एड्रेस इमेज के दूसरे लिंक से बदलें

मैं इसे समाप्त करता हूं:

<script type="text/javascript" language="javascript">
<!--
// Email obfuscator script 2.1 by Tim Williams, University of Arizona
// Random encryption kkeoy feature by Andrew Moulden, Site Engineering Ltd
// This kudzu is freeware provided these four comment lines remain intact
// A wizard to generate this kudzu is at http://www.jottings.com/obfuscator/
{ kudzu = "3A1OTJ:rJJ@VAK.GJ3"
  kkeoy = "J0K94NR2SXLupIGqVwt8EZlhznemfaPjs7QvTB6iOyWYo3rAk5FHMdxCg1cDbU"
  shift=kudzu.length
  klonk=""
  for (variter=0; variter<kudzu.length; variter++) {
    if (kkeoy.indexOf(kudzu.charAt(variter))==-1) {
      lutu = kudzu.charAt(variter)
      klonk += (lutu)
    }
    else {
      lutu = (kkeoy.indexOf(kudzu.charAt(variter))-shift+kkeoy.length) % kkeoy.length
      klonk += (kkeoy.charAt(lutu))
    }
  }
document.write("<a href='"+klonk+"'><img src='contactaddressimage.png' alt='Send Me Email' border='0' height='62' width='240'></a>")
}
//-->
</script>
<noscript>
    <img src="contactaddressimage.png" border="0" height="62" width="240">
    <font face="Arial" size="3"><br>&nbsp;</font></p>
</noscript>

3

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


AJAX ईमेल लोडिंग कार्यान्वयन को लागू करने में लगने वाला समय: 3 दिन। स्पैम में समय बचा है जिसे आपको हटाना नहीं है: 17 मिनट।

2

एक व्यक्ति ने एक पृष्ठ पर एक ईमेल पता प्रस्तुत करने के नौ अलग-अलग तरीकों का परीक्षण किया और फिर अपने ब्लॉग पर परिणाम प्रकाशित किया

उनके तीन सबसे अच्छे तरीके थे:

  1. सीएसएस के साथ कोड दिशा बदलना
  2. CSS प्रदर्शन का उपयोग करना: कोई नहीं
  3. ROT13 एन्क्रिप्शन

कैविएट - यह दो साल पहले पोस्ट किया गया था। स्पैम बॉट्स होशियार हो सकता है।


1

यदि आप PHP के साथ काम करते हैं, तो आप एक मुफ्त स्क्रिप्ट को पकड़ सकते हैं जो स्वचालित रूप से करता है। इसे "प्राइवेट डैडी" कहा जाता है और हम इसे अपनी ऑनलाइन ऑडियो स्ट्रीमिंग सेवा के लिए उपयोग करते हैं। कोड की सिर्फ एक पंक्ति और यह बॉक्स से बाहर काम करती है ... आप इसे यहां ले जा सकते हैं


मैं जानना चाहूंगा कि किसी ने इसे क्यों गलत ठहराया। यह समझाने में मददगार होगा।
यानिस फ़ान

1

एक अन्य दृष्टिकोण जावास्क्रिप्ट ढांचे का उपयोग करके और HTML तत्वों में डेटा / मॉडल को बांधकर किया जा सकता है। AngularJS के मामले में, HTML तत्वों को इस प्रकार लिखा जाएगा:

<a href="mailto:{{contactEmail}}"><span>{{contactEmail}}</span></a>

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

<a href="mailto:{{contactEmail | decode}}"><span>{{contactEmail | decode}}</span></a>

लाभ HTML लिखने के तरीके में हैं। नकारात्मक पक्ष यह है कि इसके लिए स्क्रिप्टिंग समर्थन की आवश्यकता होती है, जो कुछ के लिए कोई नहीं हो सकता है।

बस एक और दृष्टिकोण।


1

JQuery का उपयोग करना, लेकिन यदि आवश्यक हो तो आसानी से सादे JS पर पोर्ट किया जा सकता है। निम्न HTML ब्लॉक लेगा। यह उदाहरण मैंने प्रदान किया है जो tel:फोन कॉल के लिंक के लिए भी है ।

<a class="obfuscate" 
 href="mailto:archie...trajano...net">
 archie...trajano...net
</a>
<a class="obfuscate"
 href="tel:+One FourOneSix-EightFiveSix-SixSixFiveFive">
 FourOneSix-EightFiveSix-SixSixFiveFive
</a>

और जावास्क्रिप्ट का उपयोग करके इसे उचित लिंक में परिवर्तित करें।

$ ("। obfuscate")। प्रत्येक (फ़ंक्शन () {

$ (This) .html ($ (this) .html ()
.replace ("...", "@")। प्रतिस्थापित करें (/ /। END। END./ g, "।"
.replace (/ वन / जी, "1")
.replace (/ दो / g, "2")
.replace (/ तीन / g, "3")
.replace (/ चार / g, "4")
.replace (/ पाँच / g, "5")
.replace (/ सिक्स / जी, "6")
.replace (/ सेवन / जी, "7")
.replace (/ आठ / जी, "8")
.replace (/ नौ / ग्राम, "9")
.replace (/ शून्य / जी, "0")

$ (यह) .attr ("href", $ (यह) .attr ("href")
.replace ("...", "@")। प्रतिस्थापित करें (/ /। END। END./ g, "।"
.replace (/ वन / जी, "1")
.replace (/ दो / g, "2")
.replace (/ तीन / g, "3")
.replace (/ चार / g, "4")
.replace (/ पाँच / g, "5")
.replace (/ सिक्स / जी, "6")
.replace (/ सेवन / जी, "7")
.replace (/ आठ / जी, "8")
.replace (/ नौ / ग्राम, "9")
.replace (/ शून्य / जी, "0")

})

मैंने इसे यहाँ और अधिक विस्तार से प्रलेखित किया https://trajano.net/2017/01/obfuscating-mailto-links/

डी / ओफ़्फ़क्यूशन एल्गोरिथ्म बहुत सरल है, इसलिए इसकी या तो लिखने के लिए कर नहीं है (बेस 64 पार्सिंग की कोई आवश्यकता नहीं है)


1

अजाक्स कॉल समाधान

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

एचटीएमएल

<a class="obfmail" href="#" rel="info">click here to show email address</a>

या

<a class="obfmail" href="#" rel="info">
    <img src="img/click-to-show-email.jpg">
</a>

jQuery

$(document).one'click', '.obfmail', function(e) {
    e.preventDefault();
    a = $(this);
    addr = a.attr('rel');
    $.ajax({
        data: { 
            email: addr
        },
        url : "/a/getemail",
        type: "POST",
        dataType: 'json',
        success: function(data) {
            a.html(data.addr);
            a.attr('href', 'mailto:' + data.addr);
        }
    });
});

पीएचपी

if($_POST['email']) {
    ...
    return json_encode(array(
        code     => '200',
        response => 'success',
        addr     => 'info@domain.ltd'
    ));
}

अधिक सुरक्षा के लिए, आप बदल सकते हैं .onद्वारा .oneइस तरह $(document).one('click', '.obfmail', function(e) {या एक PHP के साथ भी काम टोकन जेनरेट कि आप ajax फोन पर डेटा में पारित, इस तरह ajax समारोह का केवल एक कॉल स्वीकार करने के लिए:

एचटीएमएल: <a class="obfmail" href="#" rel="info" token="w3487ghdr6rc">

jQuery:

...
addr = a.attr('rel');
tkn  = a.attr('token');
$.ajax({
    data: { 
        email: addr,
        token: tkn
    }, ...

लौटे ईमेल पते को भी एनकोड करना या उसे पलटना संभव है।

फोन नंबर के लिए भी ठीक काम!


0

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

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


0

यदि आप अपनी साइट पर कहते हैं कि "मेरा ई-मेल पता (मेरा पहला नाम) @ (मेरा अंतिम नाम) .com है।", और आपका पहला नाम और अंतिम नाम बहुत स्पष्ट है, जो सबसे अच्छा स्पैम संरक्षण प्रतीत होता है आप प्राप्त करने जा रहे हैं।


कोष्ठक वास्तव में पूर्ण ईमेल में अनुमति नहीं है? ऐसा लगता है कि एक मान्य ईमेल पता हो सकता है। : पी
Kzqai

1
जो एक और कारण है स्पैम बॉट आपके इनबॉक्स को याद करेंगे। :-)
डीन जे

0

यदि किसी का रेल का उपयोग कर रहे हैं, तो वे actionview-encoded_mail_toमणि का उपयोग कर सकते हैं । ( https://github.com/reed/actionview-encoded_mail_to )

कुछ विकल्प हैं:

: सांकेतिक शब्दों में बदलना - यह कुंजी तार "जावास्क्रिप्ट" या "हेक्स" को स्वीकार करेगी। पासिंग "जावास्क्रिप्ट" गतिशील रूप से मेल्टो लिंक को बनाएगा और एनकोड करेगा फिर इसे पेज के DOM में निकाल देगा। यदि उपयोगकर्ता के पास जावास्क्रिप्ट अक्षम है, तो यह विधि पृष्ठ पर लिंक नहीं दिखाएगी। "हेक्स" पास करना हेक्सो लिंक को आउटपुट करने से पहले ईमेल_एड्रेस को कूटबद्ध करेगा।

: replace_at - जब लिंक नाम प्रदान नहीं किया जाता है, तो email_address का उपयोग लिंक लेबल के लिए किया जाता है। आप मान के रूप में दिए गए स्ट्रिंग के साथ @ चिह्न को प्रतिस्थापित करके email_address को बाधित करने के लिए इस विकल्प का उपयोग कर सकते हैं।

: Replace_dot - जब लिंक नाम प्रदान नहीं किया जाता है, तो email_address का उपयोग लिंक लेबल के लिए किया जाता है। आप इस विकल्प का उपयोग ईमेल_ड्रेस को प्रतिस्थापित करके करने के लिए कर सकते हैं। मूल्य के रूप में दिए गए स्ट्रिंग के साथ ईमेल में।


0
<!-- Multi-Email Obfuscator  -->
<!-- step 1: &#064; = @  -->
<!-- step 2: a scrap element  -->
<!-- step 3: ROT13 encode for .com  -->
info<!-- step 1 -->&#064;<!-- step 2 --><b style="display:none">my</b>domain<!-- step 3 --><script>document.write(".pbz".replace(/[a-zA-Z]/g,function(c){return String.fromCharCode((c<="Z"?90:122)>=(c=c.charCodeAt(0)+13)?c:c-26);}));</script>


0

चूंकि इस समाधान का कहीं भी उल्लेख नहीं किया गया है, लेकिन मेरे लिए अच्छा काम करता है:

मैं यह करता हूँ:

  • नकली ईमेल के साथ एक mailto लिंक बनाएँ। मुझे स्पष्ट कारणों से admin@localhost.localdomain पसंद है: स्पैमर अनियंत्रित इस पते का उपयोग करते समय अपने स्वयं के बॉटनेट को स्पैम कर सकता है।

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

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

अब आपके पास एक पूरी तरह से कार्यशील लेकिन obfuscated, honeypoted और timesecured mailto लिंक है।

कार्यशील उदाहरण php फ़ाइल:

<html>
<head>
<title>E-Mail Obfuscating</title>
</head>
<body>
<?php
$email = "example@email.org";
echo "<a class='emailLink' href='mailto:admin@localhost.localdomain' >Send me an e-mail!</a>"
    ."<span style='display:none' data-hash='" . base64_encode($email) . "' />";
?>
<script>
<!--
var emailLinks = document.getElementsByClassName("emailLink");
setTimeout(function() {
    for(var i=0; i <emailLinks.length; ++i){
        emailLinks[i].addEventListener("click", function(){
            let encodedEmail = this.nextSibling.getAttribute('data-hash');
            let decodedEmail = atob(encodedEmail);
            this.href = "mailto:" + decodedEmail;
            this.text = decodedEmail;
        });
    }
}, 1000);

-->
</script>
</body>
</html>

कोड आपके साथ हो सकता है।


0

क्या होगा अगर एक लिंक "मुझसे संपर्क करें" पासवर्ड द्वारा संरक्षित निर्देशिका की ओर इशारा करते हुए बनाएं? बेशक, आपको पास को एक्सेस करने के लिए देना होगा।

"मुझसे संपर्क करें"> •••••••••••> संपर्क / index.html

एक बार एक्सेस करने के बाद, संपर्क / index.html पेज ईमेल, उदाहरण के लिए एक मेलो प्रकट करता है।


-1

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

आप कुछ दिए गए HTML (जहाँ $ संसाधित किया गया HTML है) में स्वचालित रूप से ईमेल पतों को स्वचालित रूप से बाधित करने के लिए इस स्निपेट के साथ जुड़े हुए फ़ंक्शन का उपयोग कर सकते हैं:

 $emailMatches = array();
 $matchCount = preg_match_all('/(?:[a-zA-Z0-9_\.\-])+\@(?:(?:[a-zA-Z0-9\-])+\.)+(?:[a-zA-Z0-9]{2,4})+/', $processedContent, $emailMatches);

 if($matchCount > 0) {
    $emailMatches = $emailMatches[0];

    foreach($emailMatches as $email) {
    $replacement = createJSMailLink($email);

    $processedContent = str_replace($email, createJSMailLink($email), $processedContent);
 }

जहाँ आपने createJSMailLink () को परिभाषित किया है?
स्टेलियन

-2

चेक इस बाहर।

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

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