स्पैम के लिए एक योजना

चीज़ें बनाना पसंद है? हैकर न्यूज़ आज़माएँ।


अगस्त 2002

(यह लेख उन स्पैम-फ़िल्टरिंग तकनीकों का वर्णन करता है जिनका उपयोग हमने Arc को चलाने के लिए बनाए गए स्पैमप्रूफ़ वेब-आधारित मेल रीडर में किया था। एक बेहतर एल्गोरिथम बेहतर बायेसियन फ़िल्टरिंग में वर्णित है।)

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


प्राप्तकर्ता के लिए, स्पैम आसानी से पहचाना जा सकता है। यदि आपने किसी को अपना मेल पढ़ने और स्पैम को हटाने के लिए काम पर रखा होता, तो उन्हें इसमें कोई परेशानी नहीं होती। इस प्रक्रिया को स्वचालित करने के लिए हमें AI के अलावा और कितना करना होगा?

मुझे लगता है कि हम अपेक्षाकृत सरल एल्गोरिदम के साथ समस्या का समाधान कर पाएंगे। वास्तव में, मैंने पाया है कि आप केवल व्यक्तिगत शब्दों की स्पैम संभावनाओं के बायेसियन संयोजन का उपयोग करके वर्तमान स्पैम को स्वीकार्य रूप से फ़िल्टर कर सकते हैं। एक थोड़े से बदले हुए (जैसा कि नीचे वर्णित है) बायेसियन फ़िल्टर का उपयोग करके, हम अब 1000 में से 5 से कम स्पैम को मिस करते हैं, जिसमें 0 झूठे सकारात्मक होते हैं।

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

और इसलिए आप करते हैं, और शुरुआत में यह काम करता है। कुछ सरल नियम आपके आने वाले स्पैम को बहुत कम कर देंगे। केवल "क्लिक" शब्द की तलाश करने से मेरे स्पैम कॉर्पस में 79.7% ईमेल पकड़े जाएंगे, जिसमें केवल 1.2% झूठे सकारात्मक होंगे।

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

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

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

मुझे नहीं पता कि मैंने सांख्यिकीय दृष्टिकोण को इतने लंबे समय तक आज़माने से क्यों टाला। मुझे लगता है कि यह इसलिए था क्योंकि मैं स्वयं स्पैम सुविधाओं की पहचान करने की कोशिश करने का आदी हो गया था, जैसे कि मैं स्पैमर्स के साथ किसी प्रकार का प्रतिस्पर्धी खेल खेल रहा था। (गैर-हैकर्स अक्सर यह महसूस नहीं करते हैं, लेकिन अधिकांश हैकर्स बहुत प्रतिस्पर्धी होते हैं।) जब मैंने सांख्यिकीय विश्लेषण आज़माया, तो मुझे तुरंत पता चला कि यह मुझसे कहीं अधिक चतुर था। इसने खोजा, निश्चित रूप से, कि "virtumundo" और "teens" जैसे शब्द स्पैम के अच्छे संकेतक थे। लेकिन इसने यह भी खोजा कि "per" और "FL" और "ff0000" स्पैम के अच्छे संकेतक थे। वास्तव में, "ff0000" (चमकीले लाल रंग के लिए एचटीएमएल) किसी भी अश्लील शब्द की तुलना में स्पैम का एक अच्छा संकेतक साबित हुआ।


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

मैं प्रत्येक कॉर्पस में प्रत्येक टोकन की घटनाओं की संख्या गिनता हूँ (केस को अनदेखा करते हुए, वर्तमान में)। इस स्तर पर मेरे पास प्रत्येक कॉर्पस के लिए दो बड़े हैश टेबल होते हैं, जो टोकन को घटनाओं की संख्या से मैप करते हैं।

अगला मैं एक तीसरा हैश टेबल बनाता हूँ, जो इस बार प्रत्येक टोकन को उस संभावना से मैप करता है कि उसमें मौजूद ईमेल एक स्पैम है, जिसकी गणना मैं इस प्रकार करता हूँ [1]: (let ((g (* 2 (or (gethash word good) 0))) (b (or (gethash word bad) 0))) (unless (< (+ g b) 5) (max .01 (min .99 (float (/ (min 1 (/ b nbad)) (+ (min 1 (/ g ngood)) (min 1 (/ b nbad))))))))) जहाँ word वह टोकन है जिसकी संभावना हम गणना कर रहे हैं, good और bad पहले चरण में बनाई गई हैश टेबल हैं, और ngood और nbad क्रमशः गैर-स्पैम और स्पैम संदेशों की संख्या हैं।

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

विशेष रूप से चौकस लोग देखेंगे कि जबकि मैं घटनाओं की गिनती के उद्देश्यों के लिए प्रत्येक कॉर्पस को एक एकल लंबी टेक्स्ट स्ट्रीम के रूप में मानता हूँ, मैं स्पैम संभावनाओं की गणना में भाजक के रूप में प्रत्येक के संदेशों की संख्या का उपयोग करता हूँ, न कि उनकी संयुक्त लंबाई का। यह झूठे सकारात्मक से बचाने के लिए एक और मामूली पूर्वाग्रह जोड़ता है।

जब नया मेल आता है, तो उसे टोकन में स्कैन किया जाता है, और सबसे दिलचस्प पंद्रह टोकन, जहाँ दिलचस्प को उनकी स्पैम संभावना को तटस्थ .5 से कितनी दूर है, से मापा जाता है, का उपयोग उस संभावना की गणना के लिए किया जाता है कि मेल स्पैम है। यदि probs पंद्रह व्यक्तिगत संभावनाओं की एक सूची है, तो आप संयुक्त संभावना की गणना इस प्रकार करते हैं: (let ((prod (apply #'* probs))) (/ prod (+ prod (apply #'* (mapcar #'(lambda (x) (- 1 x)) probs))))) एक प्रश्न जो व्यवहार में उठता है वह है कि आपने कभी न देखे गए शब्द के लिए क्या संभावना असाइन करनी है, यानी जो शब्द हैश टेबल में नहीं है। मैंने, फिर से परीक्षण और त्रुटि के माध्यम से, पाया है कि .4 उपयोग करने के लिए एक अच्छी संख्या है। यदि आपने पहले कभी कोई शब्द नहीं देखा है, तो यह शायद काफी निर्दोष है; स्पैम शब्दों की प्रवृत्ति बहुत परिचित होने की होती है।

इस एल्गोरिथम के वास्तविक ईमेल पर लागू होने के उदाहरण अंत में एक परिशिष्ट में हैं।

मैं मेल को स्पैम के रूप में मानता हूँ यदि उपरोक्त एल्गोरिथम इसे स्पैम होने की .9 से अधिक संभावना देता है। लेकिन व्यवहार में यह बहुत मायने नहीं रखेगा कि मैं इस सीमा को कहाँ रखता हूँ, क्योंकि बहुत कम संभावनाएँ सीमा के मध्य में समाप्त होती हैं।


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

लेकिन बायेसियन दृष्टिकोण का असली फायदा, निश्चित रूप से, यह है कि आप जानते हैं कि आप क्या माप रहे हैं। फ़ीचर-पहचान फ़िल्टर जैसे स्पैमएसैसिन ईमेल को एक स्पैम "स्कोर" असाइन करते हैं। बायेसियन दृष्टिकोण एक वास्तविक संभावना असाइन करता है। "स्कोर" के साथ समस्या यह है कि कोई नहीं जानता कि इसका क्या मतलब है। उपयोगकर्ता नहीं जानता कि इसका क्या मतलब है, लेकिन इससे भी बदतर, फ़िल्टर का डेवलपर भी नहीं जानता। "सेक्स" शब्द होने के लिए एक ईमेल को कितने अंक मिलने चाहिए? एक संभावना निश्चित रूप से गलत हो सकती है, लेकिन इस बात पर थोड़ी अस्पष्टता है कि इसका क्या मतलब है, या संभावना की गणना के लिए साक्ष्य को कैसे जोड़ा जाना चाहिए। मेरे कॉर्पस के आधार पर, "सेक्स" उस ईमेल की .97 संभावना इंगित करता है जिसमें वह शब्द है, जबकि "सेक्सी" .99 संभावना इंगित करता है। और बेयस का नियम, समान रूप से अस्पष्ट, कहता है कि दोनों शब्दों वाले ईमेल में, किसी अन्य साक्ष्य की अनुपस्थिति में, स्पैम होने की 99.97% संभावना होगी।

चूंकि यह संभावनाओं को माप रहा है, बायेसियन दृष्टिकोण ईमेल में सभी साक्ष्य, अच्छे और बुरे दोनों पर विचार करता है। जो शब्द स्पैम में disproportionately दुर्लभ होते हैं (जैसे "though" या "tonight" या "apparently") वे "unsubscribe" और "opt-in" जैसे बुरे शब्दों की तरह संभावना को कम करने में उतना ही योगदान करते हैं। इसलिए एक अन्यथा निर्दोष ईमेल जिसमें "सेक्स" शब्द शामिल है, उसे स्पैम के रूप में टैग नहीं किया जाएगा।

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

जब मैंने शुरुआत में कहा कि हमारे फ़िल्टर 1000 में से 5 से कम स्पैम को 0 झूठे सकारात्मक के साथ जाने देते हैं, तो मैं अपने मेल को अपने मेल के कॉर्पस के आधार पर फ़िल्टर करने की बात कर रहा हूँ। लेकिन ये संख्याएँ भ्रामक नहीं हैं, क्योंकि यही वह दृष्टिकोण है जिसकी मैं वकालत कर रहा हूँ: प्रत्येक उपयोगकर्ता के मेल को उसके द्वारा प्राप्त स्पैम और गैर-स्पैम मेल के आधार पर फ़िल्टर करें। अनिवार्य रूप से, प्रत्येक उपयोगकर्ता के पास दो डिलीट बटन होने चाहिए, सामान्य डिलीट और स्पैम-के-रूप-में-डिलीट। स्पैम-के-रूप-में-डिलीट की गई कोई भी चीज़ स्पैम कॉर्पस में चली जाती है, और बाकी सब कुछ गैर-स्पैम कॉर्पस में चला जाता है।

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

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

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

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


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

मैं बायेसियन फ़िल्टर के बारे में अधिक आशावादी हूँ, क्योंकि वे स्पैम के साथ विकसित होते हैं। इसलिए जैसे ही स्पैमर्स सरल-सोच वाले स्पैम फ़िल्टर से बचने के लिए "c0ck" के बजाय "cock" का उपयोग करना शुरू करते हैं, बायेसियन फ़िल्टर स्वचालित रूप से नोटिस करते हैं। वास्तव में, "c0ck" "cock" की तुलना में कहीं अधिक निंदनीय साक्ष्य है, और बायेसियन फ़िल्टर ठीक-ठीक जानते हैं कि कितना अधिक।

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

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

यह मानते हुए कि वे हेडर की समस्या को हल कर सकते हैं, भविष्य का स्पैम शायद कुछ इस तरह दिखेगा: नमस्ते। सोचा था कि आपको निम्नलिखित की जाँच करनी चाहिए: http://www.27meg.com/foo क्योंकि यह सामग्री-आधारित फ़िल्टरिंग द्वारा स्पैमर को बनाने की अनुमति देने वाली बिक्री पिच की मात्रा के बारे में है। (वास्तव में, इस तरह के फ़िल्टर से इसे पास करना भी मुश्किल होगा, क्योंकि यदि ईमेल में बाकी सब कुछ तटस्थ है, तो स्पैम संभावना यूआरएल पर निर्भर करेगी, और उसे तटस्थ दिखाना कुछ प्रयास लेगा।)

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

(मुझे पहले लगता था कि सख्त कानून स्पैम को कम करेंगे, यह विश्वास करना भोलापन था। अब मुझे लगता है कि जबकि सख्त कानून स्पैमर्स द्वारा भेजे जाने वाले स्पैम की मात्रा को कम नहीं कर सकते हैं, वे निश्चित रूप से प्राप्तकर्ताओं द्वारा वास्तव में देखे जाने वाले स्पैम की मात्रा को कम करने में फ़िल्टर की मदद कर सकते हैं।)

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

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

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

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


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

परिशिष्ट: फ़िल्टरिंग के उदाहरण

यहाँ एक स्पैम का उदाहरण है जो इस लेख को लिखते समय आया था। इस स्पैम में पंद्रह सबसे दिलचस्प शब्द हैं: qvp0045 indira mx-05 intimail $7500 freeyankeedom cdo bluefoxmedia jpg unsecured platinum 3d0 qves 7c5 7c266675 शब्द हेडर और संदेश निकाय दोनों से सामग्री का मिश्रण हैं, जो स्पैम के लिए विशिष्ट है। स्पैम के लिए भी विशिष्ट है कि इन सभी शब्दों में मेरे डेटाबेस में .99 की स्पैम संभावना है। वास्तव में .99 की संभावना वाले पंद्रह से अधिक शब्द हैं, और ये केवल देखे गए पहले पंद्रह हैं।

दुर्भाग्य से यह इस ईमेल को बेयस के नियम के उपयोग का एक उबाऊ उदाहरण बनाता है। संभावनाओं की एक दिलचस्प विविधता देखने के लिए हमें इस वास्तव में काफी असामान्य स्पैम को देखना होगा।

इस स्पैम में पंद्रह सबसे दिलचस्प शब्द, उनकी संभावनाओं के साथ, हैं: madam 0.99 promotion 0.99 republic 0.99 shortest 0.047225013 mandatory 0.047225013 standardization 0.07347802 sorry 0.08221981 supported 0.09019077 people's 0.09019077 enter 0.9075001 quality 0.8921298 organization 0.12454646 investment 0.8568143 very 0.14758544 valuable 0.82347786 इस बार साक्ष्य अच्छे और बुरे का मिश्रण है। "shortest" जैसा शब्द "madam" या "promotion" जैसे शब्द की तरह निर्दोषिता का लगभग उतना ही साक्ष्य है जितना कि अपराध का। लेकिन फिर भी अपराध का मामला मजबूत है। यदि आप इन संख्याओं को बेयस के नियम के अनुसार जोड़ते हैं, तो परिणामी संभावना .9027 है।

"Madam" स्पष्ट रूप से "Dear Sir or Madam." से शुरू होने वाले स्पैम से है। वे बहुत आम नहीं हैं, लेकिन "madam" शब्द मेरे वैध ईमेल में कभी नहीं होता है, और यह सब अनुपात के बारे में है।

"Republic" उच्च स्कोर करता है क्योंकि यह अक्सर नाइजीरियाई घोटाले वाले ईमेल में दिखाई देता है, और कोरिया और दक्षिण अफ्रीका का उल्लेख करने वाले स्पैम में भी एक या दो बार दिखाई देता है। आप कह सकते हैं कि यह एक संयोग है कि यह इस स्पैम की पहचान करने में मदद करता है। लेकिन मैंने स्पैम संभावनाओं की जांच करते समय पाया है कि ऐसे कई संयोग हैं, और उनमें चीजों को सही दिशा में धकेलने की एक अजीब प्रवृत्ति है, न कि गलत दिशा में। इस मामले में, यह पूरी तरह से संयोग नहीं है कि "Republic" शब्द नाइजीरियाई घोटाले वाले ईमेल और इस स्पैम में दिखाई देता है। इसमें कम विकसित देशों से जुड़ी संदिग्ध व्यावसायिक प्रस्तावों की एक पूरी श्रेणी है, और इन देशों में ऐसे नाम होने की अधिक संभावना है जो स्पष्ट रूप से (क्योंकि वे नहीं हैं) निर्दिष्ट करते हैं कि वे गणराज्य हैं।[3]

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

तुलना के लिए, यहाँ उस दुर्लभ पक्षी का एक उदाहरण है, एक स्पैम जो फ़िल्टर से गुजर जाता है। क्यों? क्योंकि संयोग से यह उन शब्दों से भरा हुआ है जो मेरे वास्तविक ईमेल में होते हैं: perl 0.01 python 0.01 tcl 0.01 scripting 0.01 morris 0.01 graham 0.01491078 guarantee 0.9762507 cgi 0.9734398 paul 0.027040077 quite 0.030676773 pop3 0.042199217 various 0.06080265 prices 0.9359873 managed 0.06451222 difficult 0.071706355 यहाँ कुछ अच्छी खबरें हैं। पहला, यह मेल शायद किसी ऐसे व्यक्ति के फ़िल्टर से नहीं गुजरेगा जो प्रोग्रामिंग भाषाओं में विशेषज्ञता नहीं रखता है और जिसका एक अच्छा दोस्त मॉरिस है। औसत उपयोगकर्ता के लिए, यहाँ शीर्ष पाँचों शब्द तटस्थ होंगे और स्पैम संभावना में योगदान नहीं करेंगे।

दूसरा, मुझे लगता है कि शब्द जोड़े (नीचे देखें) के आधार पर फ़िल्टरिंग इसे पकड़ सकती है: "cost effective", "setup fee", "money back" -- काफी आपत्तिजनक सामग्री। और निश्चित रूप से यदि वे मुझे (या मेरे नेटवर्क का हिस्सा) स्पैम करना जारी रखते हैं, तो "Hostex" स्वयं एक स्पैम शब्द के रूप में पहचाना जाएगा।

अंत में, यहाँ एक निर्दोष ईमेल है। इसके पंद्रह सबसे दिलचस्प शब्द इस प्रकार हैं: continuation 0.01 describe 0.01 continuations 0.01 example 0.033600237 programming 0.05214485 i'm 0.055427782 examples 0.07972858 color 0.9189189 localhost 0.09883721 hi 0.116539136 california 0.84421706 same 0.15981844 spot 0.1654587 us-ascii 0.16804294 what 0.19212411 यहाँ अधिकांश शब्द इंगित करते हैं कि मेल निर्दोष है। दो बुरे गंध वाले शब्द हैं, "color" (स्पैमर्स रंगीन फ़ॉन्ट पसंद करते हैं) और "California" (जो प्रशंसापत्रों में और फ़ॉर्म में मेनू में भी दिखाई देता है), लेकिन वे "continuation" और "example" जैसे स्पष्ट रूप से निर्दोष शब्दों को पछाड़ने के लिए पर्याप्त नहीं हैं।

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

परिशिष्ट: अधिक विचार

एक विचार जिसे मैंने अभी तक आज़माया नहीं है वह है व्यक्तिगत शब्दों के बजाय शब्द जोड़े, या यहां तक ​​कि तिगुनी के आधार पर फ़िल्टर करना। इससे संभावना का बहुत तेज अनुमान लगना चाहिए। उदाहरण के लिए, मेरे वर्तमान डेटाबेस में, "offers" शब्द की संभावना .96 है। यदि आप संभावनाओं को शब्द जोड़े पर आधारित करते हैं, तो आपको "special offers" और "valuable offers" की संभावनाएँ .99 और, मान लीजिए, "approach offers" (जैसा कि "this approach offers" में) की संभावना .1 या उससे कम मिलेगी।

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

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

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

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

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

डोमेन नाम एक (गैर-जर्मन) ईमेल में बाकी टेक्स्ट से इस मायने में भिन्न होते हैं कि वे अक्सर कई शब्दों को एक साथ चिपकाए हुए होते हैं। हालांकि सामान्य मामले में कम्प्यूटेशनल रूप से महंगा है, उन्हें विघटित करने का प्रयास करना सार्थक हो सकता है। यदि किसी फ़िल्टर ने "xxxporn" टोकन पहले कभी नहीं देखा है तो उसकी व्यक्तिगत स्पैम संभावना .4 होगी, जबकि "xxx" और "porn" व्यक्तिगत रूप से (मेरे कॉर्पस में) .9889 और .99 की संभावनाएँ रखते हैं, और .9998 की संयुक्त संभावना रखते हैं।

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

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

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

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

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

परिशिष्ट: स्पैम को परिभाषित करना

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

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

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

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

स्पैम भेजने वाली कंपनियाँ अक्सर आपको "सदस्यता समाप्त" करने का एक तरीका देती हैं, या आपसे उनकी साइट पर जाने और अपनी "खाता प्राथमिकताएँ" बदलने के लिए कहती हैं यदि आप स्पैम प्राप्त करना बंद करना चाहते हैं। यह मेल को स्पैम होने से रोकने के लिए पर्याप्त नहीं है। ऑप्ट-आउट न करना ऑप्ट-इन करने जैसा नहीं है। जब तक प्राप्तकर्ता ने स्पष्ट रूप से एक स्पष्ट रूप से लेबल किए गए बॉक्स (जिसका डिफ़ॉल्ट नहीं था) की जाँच नहीं की है, जिसमें ईमेल प्राप्त करने के लिए कहा गया है, तब तक यह स्पैम है।

कुछ व्यावसायिक संबंधों में, आप कुछ प्रकार के मेल का अप्रत्यक्ष रूप से अनुरोध करते हैं। जब आप ऑनलाइन ऑर्डर करते हैं, तो मुझे लगता है कि आप रसीद का और जब ऑर्डर शिप होता है तो सूचना का अप्रत्यक्ष रूप से अनुरोध करते हैं। मुझे तब बुरा नहीं लगता जब Verisign मुझे एक डोमेन नाम समाप्त होने की चेतावनी देने वाला मेल भेजता है (कम से कम, यदि वे इसके वास्तविक रजिस्ट्रार हैं)। लेकिन जब Verisign मुझे "My E-Commerce Web Site बनाने के लिए एक मुफ्त गाइड" की पेशकश करने वाला ईमेल भेजता है, तो वह स्पैम है।

नोट्स:

[1] इस लेख में उदाहरण कॉमन लिस्प में अनुवादित हैं, विश्वास करें या न करें, अधिक पहुंच के लिए। यहाँ वर्णित एप्लिकेशन वह है जिसे हमने Arc नामक एक नई लिस्प बोली का परीक्षण करने के लिए लिखा था जो अभी तक जारी नहीं हुई है।

[2] वर्तमान में सबसे कम दर प्रति स्पैम एक मिलियन भेजने के लिए लगभग $200 प्रतीत होती है। यह बहुत सस्ता है, प्रति स्पैम 1/50 सेंट। लेकिन 95% स्पैम को फ़िल्टर करने से, उदाहरण के लिए, स्पैमर्स की लागत किसी दिए गए दर्शक तक पहुँचने के लिए 20 के कारक से बढ़ जाएगी। कुछ के पास उस लागत को अवशोषित करने के लिए पर्याप्त मार्जिन हो सकता है।

[3] एक अंगूठे के नियम के रूप में, देश के नाम से पहले जितने अधिक क्वालिफायर होते हैं, शासक उतने ही भ्रष्ट होते हैं। द सोशलिस्ट पीपुल्स डेमोक्रेटिक रिपब्लिक ऑफ एक्स नामक देश शायद दुनिया की आखिरी जगह है जहाँ आप रहना चाहेंगे।

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

आपको यह निबंध और 14 अन्य हैकर और पेंटर में मिलेंगे।

अधिक जानकारी: