स्पैम के लिए एक योजना
Originalअगस्त 2002
(यह लेख उन स्पैम-फिल्टरिंग तकनीकों का वर्णन करता है जो हमने Arc का उपयोग करने के लिए बनाई गई स्पैमप्रूफ वेब-आधारित मेल रीडर में उपयोग की हैं। एक बेहतर एल्गोरिदम का वर्णन बेहतर बेयesian फ़िल्टरिंग में किया गया है।)
मुझे लगता है कि स्पैम को रोकना संभव है, और सामग्री-आधारित फ़िल्टर इसे करने का तरीका हैं। स्पैमर का Achilles हील उनका संदेश है। वे आपके द्वारा स्थापित किसी भी अन्य बाधा को पार कर सकते हैं। वे अब तक, कम से कम, ऐसा कर चुके हैं। लेकिन उन्हें अपना संदेश भेजना होता है, चाहे वह कुछ भी हो। यदि हम ऐसा सॉफ़्टवेयर लिख सकते हैं जो उनके संदेशों को पहचानता है, तो उनके लिए इससे बचना संभव नहीं होगा।
प्राप्तकर्ता के लिए, स्पैम आसानी से पहचाना जा सकता है। यदि आपने किसी को अपनी मेल पढ़ने और स्पैम को फेंकने के लिए रखा, तो उन्हें ऐसा करने में कोई कठिनाई नहीं होगी। हमें इस प्रक्रिया को स्वचालित करने के लिए, AI के अलावा, कितना करना होगा?
मुझे लगता है कि हम इस समस्या को अपेक्षाकृत सरल एल्गोरिदम के साथ हल करने में सक्षम होंगे। वास्तव में, मैंने पाया है कि आप वर्तमान समय के स्पैम को केवल व्यक्तिगत शब्दों की स्पैम संभावनाओं के बेयesian संयोजन का उपयोग करके स्वीकार्य रूप से फ़िल्टर कर सकते हैं। एक थोड़े संशोधित (जैसा कि नीचे वर्णित है) बेयesian फ़िल्टर का उपयोग करते हुए, हम अब 1000 स्पैम में से 5 से कम चूकते हैं, जिसमें 0 झूठे सकारात्मक हैं।
सांख्यिकीय दृष्टिकोण आमतौर पर वह पहला नहीं होता है जिसे लोग स्पैम फ़िल्टर लिखते समय आजमाते हैं। अधिकांश हैकरों की पहली प्रवृत्ति यह होती है कि वे स्पैम के व्यक्तिगत गुणों को पहचानने वाला सॉफ़्टवेयर लिखने की कोशिश करें। आप स्पैम को देखते हैं और आप सोचते हैं, इन लोगों की हिम्मत कि वे मुझे "प्रिय मित्र" से शुरू होने वाला या एक विषय पंक्ति जो पूरी तरह से बड़े अक्षरों में है और आठ विस्मयादिबोधक चिह्नों के साथ समाप्त होती है, भेजने की कोशिश कर रहे हैं। मैं लगभग एक पंक्ति कोड के साथ उस सामान को फ़िल्टर कर सकता हूँ।
और इसलिए आप ऐसा करते हैं, और शुरुआत में यह काम करता है। कुछ सरल नियम आपके आने वाले स्पैम का एक बड़ा हिस्सा ले लेंगे। केवल "क्लिक" शब्द की तलाश करने से मेरे स्पैम कॉर्पस में 79.7% ईमेल पकड़ में आ जाते हैं, जिसमें केवल 1.2% झूठे सकारात्मक होते हैं।
मैंने व्यक्तिगत स्पैम विशेषताओं की तलाश करने के लिए लगभग छह महीने सॉफ़्टवेयर लिखने में बिताए, इससे पहले कि मैंने सांख्यिकीय दृष्टिकोण को आजमाया। जो मैंने पाया वह यह था कि स्पैम के अंतिम कुछ प्रतिशत को पहचानना बहुत कठिन हो गया, और जैसे-जैसे मैंने फ़िल्टर को सख्त किया, मुझे अधिक झूठे सकारात्मक मिले।
झूठे सकारात्मक निर्दोष ईमेल होते हैं जिन्हें गलती से स्पैम के रूप में पहचाना जाता है। अधिकांश उपयोगकर्ताओं के लिए, वैध ईमेल को चूकना स्पैम प्राप्त करने की तुलना में एक क्रम के गुणा से बदतर है, इसलिए एक फ़िल्टर जो झूठे सकारात्मक देता है, वह एक मुँहासे के इलाज के समान है जो रोगी के लिए मृत्यु का जोखिम उठाता है।
जितना अधिक स्पैम एक उपयोगकर्ता प्राप्त करता है, उतना ही कम संभावना है कि वह अपने स्पैम फ़ोल्डर में एक निर्दोष मेल को नोटिस करेगा। और अजीब बात यह है कि जैसे-जैसे आपके स्पैम फ़िल्टर बेहतर होते हैं, झूठे सकारात्मक उतने ही खतरनाक हो जाते हैं, क्योंकि जब फ़िल्टर वास्तव में अच्छे होते हैं, तो उपयोगकर्ता उन सभी चीजों को अनदेखा करने की अधिक संभावना रखते हैं जो वे पकड़ते हैं।
मुझे नहीं पता कि मैंने सांख्यिकीय दृष्टिकोण को आजमाने से इतना समय क्यों बचाया। मुझे लगता है कि इसका कारण यह था कि मैं खुद स्पैम विशेषताओं की पहचान करने की कोशिश करने के लिए आदी हो गया, जैसे कि मैं स्पैमर्स के साथ किसी प्रकार के प्रतिस्पर्धात्मक खेल में खेल रहा था। (गैर-हैकर अक्सर इसे नहीं समझते, लेकिन अधिकांश हैकर बहुत प्रतिस्पर्धात्मक होते हैं।) जब मैंने सांख्यिकीय विश्लेषण करने की कोशिश की, तो मैंने तुरंत पाया कि यह मुझसे कहीं अधिक चतुर था। इसने, निश्चित रूप से, यह खोजा कि "virtumundo" और "teens" जैसे शब्द स्पैम के अच्छे संकेतक थे। लेकिन इसने यह भी खोजा कि "per" और "FL" और "ff0000" स्पैम के अच्छे संकेतक हैं। वास्तव में, "ff0000" (चमकीले लाल के लिए html) किसी भी अश्लील शब्द के रूप में स्पैम का एक अच्छा संकेतक साबित होता है।
यहाँ सांख्यिकीय फ़िल्टरिंग करने का मेरा एक खाका है। मैं एक स्पैम कॉर्पस और एक गैर-स्पैम मेल के साथ शुरू करता हूँ। इस समय प्रत्येक में लगभग 4000 संदेश हैं। मैं प्रत्येक कॉर्पस में प्रत्येक संदेश के पूरे पाठ, जिसमें हेडर और एम्बेडेड html और जावास्क्रिप्ट शामिल हैं, को स्कैन करता हूँ। मैं वर्तमान में अल्फ़ान्यूमेरिक वर्णों, डैश, अपॉस्ट्रोफ और डॉलर के संकेतों को टोकन का हिस्सा मानता हूँ, और बाकी सब कुछ टोकन विभाजक होता है। (यहाँ सुधार की गुंजाइश हो सकती है।) मैं उन टोकनों को नजरअंदाज करता हूँ जो सभी अंक हैं, और मैं html टिप्पणियों को भी नजरअंदाज करता हूँ, उन्हें टोकन विभाजक के रूप में भी नहीं मानता।
मैं प्रत्येक टोकन (केस की अनदेखी करते हुए, वर्तमान में) प्रत्येक कॉर्पस में कितनी बार होता है, इसकी गणना करता हूँ। इस चरण में, मुझे प्रत्येक कॉर्पस के लिए दो बड़े हैश टेबल मिलते हैं, जो टोकनों को घटनाओं की संख्या से मानचित्रित करते हैं।
इसके बाद मैं एक तीसरा हैश टेबल बनाता हूँ, इस बार प्रत्येक टोकन को उस संभावना से मानचित्रित करता हूँ कि एक ईमेल जिसमें यह है, स्पैम है, जिसे मैं निम्नलिखित के रूप में गणना करता हूँ [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 क्रमशः गैर-स्पैम और स्पैम संदेशों की संख्या हैं।
मैंने इसे कोड के रूप में समझाया है ताकि कुछ महत्वपूर्ण विवरण दिखा सकूँ। मैं झूठे सकारात्मक से बचने के लिए संभावनाओं को थोड़ा पूर्वाग्रहित करना चाहता हूँ, और परीक्षण और त्रुटि द्वारा मैंने पाया है कि इसे करने का एक अच्छा तरीका यह है कि सभी संख्याओं को अच्छे में दो गुना करना है। यह उन शब्दों के बीच भेद करने में मदद करता है जो कभी-कभी वैध ईमेल में होते हैं और उन शब्दों के बीच जो लगभग कभी नहीं होते। मैं केवल उन शब्दों पर विचार करता हूँ जो कुल मिलाकर पांच बार से अधिक होते हैं (वास्तव में, दोगुना करने के कारण, गैर-स्पैम मेल में तीन बार होना पर्याप्त होगा)। और फिर एक प्रश्न है कि उन शब्दों को क्या संभावना दी जाए जो एक कॉर्पस में होते हैं लेकिन दूसरे में नहीं। फिर से परीक्षण और त्रुटि द्वारा मैंने .01 और .99 चुना। यहाँ ट्यूनिंग के लिए जगह हो सकती है, लेकिन जैसे-जैसे कॉर्पस बढ़ता है, वैसे-वैसे यह ट्यूनिंग अपने आप हो जाएगी।
विशेष रूप से अवलोकनशील लोग यह देखेंगे कि जबकि मैं प्रत्येक कॉर्पस को घटनाओं की गणना के उद्देश्यों के लिए एक लंबे पाठ की धारा मानता हूँ, मैं स्पैम संभावनाओं की गणना में विभाजक के रूप में प्रत्येक में ईमेल की संख्या का उपयोग करता हूँ, न कि उनके संयुक्त लंबाई का। यह झूठे सकारात्मक से बचाने के लिए एक और हल्का पूर्वाग्रह जोड़ता है।
जब नया मेल आता है, तो इसे टोकनों में स्कैन किया जाता है, और सबसे दिलचस्प पंद्रह टोकन, जहाँ दिलचस्पता इस बात से मापी जाती है कि उनकी स्पैम संभावना एक तटस्थ .5 से कितनी दूर है, का उपयोग मेल के स्पैम होने की संभावना की गणना करने के लिए किया जाता है। यदि probs पंद्रह व्यक्तिगत संभावनाओं की एक सूची है, तो आप संयुक्त संभावना इस प्रकार गणना करते हैं:
(let ((prod (apply #'* probs))) (/ prod (+ prod (apply #'* (mapcar #'(lambda (x) (- 1 x)) probs)))))
व्यवहार में एक प्रश्न यह उठता है कि एक शब्द को क्या संभावना दी जाए जिसे आपने कभी नहीं देखा, यानी एक ऐसा जो शब्द संभावनाओं के हैश टेबल में नहीं है। मैंने पाया है, फिर से परीक्षण और त्रुटि द्वारा, कि .4 एक अच्छा नंबर है जिसका उपयोग किया जा सकता है। यदि आपने पहले कभी एक शब्द नहीं देखा है, तो यह शायद काफी निर्दोष है; स्पैम शब्द बहुत परिचित होते हैं।
इस एल्गोरिदम के वास्तविक ईमेल पर लागू होने के उदाहरण एक परिशिष्ट में अंत में हैं।
मैं मेल को स्पैम मानता हूँ यदि उपरोक्त एल्गोरिदम इसे स्पैम होने की 0.9 से अधिक संभावना देता है। लेकिन व्यवहार में यह मायने नहीं रखता कि मैं इस सीमा को कहाँ रखता हूँ, क्योंकि कुछ ही संभावनाएँ सीमा के मध्य में समाप्त होती हैं।
सांख्यिकीय दृष्टिकोण का एक बड़ा लाभ यह है कि आपको इतने सारे स्पैम नहीं पढ़ने होते हैं। पिछले छह महीनों में, मैंने सचमुच हजारों स्पैम पढ़े हैं, और यह वास्तव में कुछ हद तक निराशाजनक है। नॉर्बर्ट वीनर ने कहा था कि यदि आप दासों के साथ प्रतिस्पर्धा करते हैं तो आप एक दास बन जाते हैं, और स्पैमर्स के साथ प्रतिस्पर्धा करने में कुछ इसी तरह का अपमानजनक है। व्यक्तिगत स्पैम विशेषताओं को पहचानने के लिए आपको स्पैमर के मन में जाने की कोशिश करनी होती है, और ईमानदारी से, मैं स्पैमर्स के मन में जितना संभव हो उतना कम समय बिताना चाहता हूँ।
लेकिन बेयesian दृष्टिकोण का असली लाभ, निश्चित रूप से, यह है कि आप जानते हैं कि आप क्या माप रहे हैं। फ़ीचर-मान्यता फ़िल्टर जैसे SpamAssassin ईमेल को एक स्पैम "स्कोर" असाइन करते हैं। बेयesian दृष्टिकोण एक वास्तविक संभावना असाइन करता है। "स्कोर" की समस्या यह है कि कोई नहीं जानता कि इसका क्या अर्थ है। उपयोगकर्ता नहीं जानता कि इसका क्या अर्थ है, लेकिन इससे भी बुरा, फ़िल्टर के डेवलपर को भी नहीं पता। एक ईमेल को "सेक्स" शब्द होने के लिए कितने अंक मिलने चाहिए? संभावना निश्चित रूप से गलत हो सकती है, लेकिन यह क्या अर्थ है, या सबूतों को इसे गणना करने के लिए कैसे जोड़ा जाना चाहिए, इस बारे में बहुत कम अस्पष्टता है। मेरे कॉर्पस के आधार पर, "सेक्स" यह संकेत करता है कि इसमें ईमेल होने की 0.97 संभावना है, जबकि "सेक्सी" 0.99 संभावना को इंगित करता है। और बेयस का नियम, जो समान रूप से स्पष्ट है, कहता है कि यदि किसी ईमेल में दोनों शब्द होते हैं, तो (अनपेक्षित) अन्य सबूतों की अनुपस्थिति में, स्पैम होने की 99.97% संभावना होगी।
चूंकि यह संभावनाओं को माप रहा है, बेयesian दृष्टिकोण ईमेल में सभी सबूतों पर विचार करता है, अच्छे और बुरे दोनों। ऐसे शब्द जो स्पैम में असमान रूप से कम होते हैं (जैसे "हालांकि" या "आज रात" या "स्पष्ट रूप से") संभावनाओं को कम करने में उतना ही योगदान करते हैं जितना कि "अनसब्सक्राइब" और "ऑप्ट-इन" जैसे बुरे शब्द इसे बढ़ाने में करते हैं। इसलिए एक अन्यथा निर्दोष ईमेल जो "सेक्स" शब्द को शामिल करता है, उसे स्पैम के रूप में टैग नहीं किया जाएगा।
आदर्श रूप से, निश्चित रूप से, संभावनाओं की गणना प्रत्येक उपयोगकर्ता के लिए व्यक्तिगत रूप से की जानी चाहिए। मुझे "Lisp" शब्द वाले बहुत सारे ईमेल मिलते हैं, और (अब तक) कोई स्पैम नहीं जो ऐसा करता है। इसलिए ऐसा शब्द प्रभावी रूप से मेरे लिए मेल भेजने का एक प्रकार का पासवर्ड है। मेरे पहले के स्पैम-फिल्टरिंग सॉफ़्टवेयर में, उपयोगकर्ता ऐसे शब्दों की एक सूची सेट कर सकता था और उनके साथ मेल स्वचालित रूप से फ़िल्टर से गुजर जाएगा। मेरी सूची में मैंने "Lisp" जैसे शब्द और मेरा ज़िपकोड रखा, ताकि (अन्यथा स्पैम की तरह लगने वाले) ऑनलाइन ऑर्डर से रसीदें गुजर सकें। मुझे लगा कि मैं बहुत चतुर हूँ, लेकिन मैंने पाया कि बेयesian फ़िल्टर ने मेरे लिए वही किया, और इसके अलावा, बहुत सारे शब्दों की खोज की जिनके बारे में मैंने नहीं सोचा था।
जब मैंने शुरुआत में कहा कि हमारे फ़िल्टर 1000 में से 5 से कम स्पैम के साथ 0 झूठे सकारात्मक के साथ गुजरते हैं, तो मैं अपनी मेल को मेरे मेल के कॉर्पस के आधार पर फ़िल्टर करने की बात कर रहा हूँ। लेकिन ये संख्याएँ भ्रामक नहीं हैं, क्योंकि यही दृष्टिकोण मैं समर्थन कर रहा हूँ: प्रत्येक उपयोगकर्ता की मेल को उस स्पैम और गैर-स्पैम मेल के आधार पर फ़िल्टर करें जो वह प्राप्त करता है। मूल रूप से, प्रत्येक उपयोगकर्ता के पास दो डिलीट बटन होने चाहिए, सामान्य डिलीट और डिलीट-एज़-स्पैम। जो कुछ भी स्पैम के रूप में हटाया जाता है वह स्पैम कॉर्पस में जाता है, और बाकी सब कुछ गैर-स्पैम कॉर्पस में जाता है।
आप उपयोगकर्ताओं को एक बीज फ़िल्टर के साथ शुरू कर सकते हैं, लेकिन अंततः प्रत्येक उपयोगकर्ता के पास उसके द्वारा प्राप्त वास्तविक मेल के आधार पर अपने स्वयं के प्रति-शब्द संभावनाएँ होनी चाहिए। यह (a) फ़िल्टर को अधिक प्रभावी बनाता है, (b) प्रत्येक उपयोगकर्ता को अपने स्पैम की सटीक परिभाषा तय करने देता है, और (c) शायद सबसे अच्छा यह है कि यह स्पैमर्स के लिए फ़िल्टर के माध्यम से मेल को ट्यून करना कठिन बना देता है। यदि फ़िल्टर का बहुत सारा मस्तिष्क व्यक्तिगत डेटाबेस में है, तो केवल बीज फ़िल्टर के माध्यम से स्पैम को ट्यून करना यह सुनिश्चित नहीं करेगा कि वे व्यक्तिगत उपयोगकर्ताओं के भिन्न और अधिक प्रशिक्षित फ़िल्टर के माध्यम से कितनी अच्छी तरह गुजरेंगे।
सामग्री-आधारित स्पैम फ़िल्टरिंग अक्सर एक व्हाइटलिस्ट के साथ संयोजित होती है, एक सूची भेजने वालों की जिनका मेल बिना किसी फ़िल्टरिंग के स्वीकार किया जा सकता है। ऐसी व्हाइटलिस्ट बनाने का एक आसान तरीका यह है कि उपयोगकर्ता ने कभी भी जिस पते पर मेल भेजा है, उसकी एक सूची रखी जाए। यदि एक मेल रीडर के पास एक डिलीट-एज़-स्पैम बटन है, तो आप उस ईमेल के प्रत्येक मेल से भेजने वाले पते को भी जोड़ सकते हैं जिसे उपयोगकर्ता ने सामान्य कचरे के रूप में हटा दिया है।
मैं व्हाइटलिस्ट का समर्थक हूँ, लेकिन इसे गणना को बचाने के तरीके के रूप में अधिक, न कि फ़िल्टरिंग में सुधार के तरीके के रूप में। मुझे पहले लगता था कि व्हाइटलिस्ट फ़िल्टरिंग को आसान बना देगी, क्योंकि आपको केवल उन लोगों से ईमेल फ़िल्टर करना होगा जिनसे आपने कभी नहीं सुना है, और जो कोई आपको पहली बार मेल भेज रहा है, वह परंपरा द्वारा आपको जो कुछ भी कह सकता है, उसमें सीमित है। कोई जिसे आप पहले से जानते हैं, वह आपको सेक्स के बारे में बात करते हुए एक ईमेल भेज सकता है, लेकिन कोई जो आपको पहली बार मेल भेज रहा है, वह ऐसा करने की संभावना नहीं रखता। समस्या यह है कि लोगों के पास एक से अधिक ईमेल पते हो सकते हैं, इसलिए एक नया भेजने वाला पता यह सुनिश्चित नहीं करता कि भेजने वाला आपको पहली बार लिख रहा है। यह असामान्य नहीं है कि एक पुराना दोस्त (विशेष रूप से यदि वह एक हैकर है) अचानक आपको एक नए भेजने वाले पते के साथ एक ईमेल भेजता है, इसलिए आप अनजान पते से मेल को विशेष रूप से सख्ती से फ़िल्टर करके झूठे सकारात्मक के जोखिम को नहीं उठा सकते।
हालांकि, एक अर्थ में, मेरे फ़िल्टर वास्तव में एक प्रकार की व्हाइटलिस्ट (और ब्लैकलिस्ट) का प्रतिनिधित्व करते हैं क्योंकि वे पूरे संदेशों पर आधारित होते हैं, जिसमें हेडर भी शामिल होते हैं। इसलिए उस हद तक वे "जानते" हैं कि विश्वसनीय भेजने वालों के ईमेल पते क्या हैं और यहां तक कि वे जानते हैं कि मेल मुझ तक कैसे पहुँचता है। और वे स्पैम के बारे में भी यही जानते हैं, जिसमें सर्वर नाम, मेलर संस्करण और प्रोटोकॉल शामिल हैं।
यदि मुझे लगता है कि मैं वर्तमान स्पैम फ़िल्टरिंग दरों को बनाए रख सकता हूँ, तो मैं इस समस्या को हल कर चुका हूँ। लेकिन इसका मतलब यह नहीं है कि वर्तमान समय के अधिकांश स्पैम को फ़िल्टर करने में सक्षम होना बहुत मायने रखता है, क्योंकि स्पैम विकसित होता है। वास्तव में, अधिकांश एंटीस्पैम तकनीकें अब तक कीटनाशकों की तरह रही हैं जो केवल कीड़ों की एक नई, प्रतिरोधी नस्ल बनाने के अलावा कुछ नहीं करती हैं।
मैं बेयesian फ़िल्टरों के बारे में अधिक आशावादी हूँ, क्योंकि वे स्पैम के साथ विकसित होते हैं। इसलिए जैसे-जैसे स्पैमर "c0ck" का उपयोग करना शुरू करते हैं "cock" के बजाय सरल-माइंडेड स्पैम फ़िल्टरों से बचने के लिए, बेयesian फ़िल्टर स्वचालित रूप से नोटिस करते हैं। वास्तव में, "c0ck" "cock" की तुलना में कहीं अधिक निंदनीय सबूत है, और बेयesian फ़िल्टर ठीक-ठीक जानते हैं कि यह कितना अधिक है।
फिर भी, जो कोई भी स्पैम फ़िल्टरिंग के लिए एक योजना का प्रस्ताव करता है, उसे इस प्रश्न का उत्तर देने में सक्षम होना चाहिए: यदि स्पैमर को पता होता कि आप वास्तव में क्या कर रहे हैं, तो वे आपके पास कितनी अच्छी तरह पहुँच सकते हैं? उदाहरण के लिए, मुझे लगता है कि यदि चेकसम-आधारित स्पैम फ़िल्टरिंग एक गंभीर बाधा बन जाती है, तो स्पैमर बस संदेश निकायों को उत्पन्न करने के लिए मैड-लिब तकनीकों पर स्विच कर देंगे।
बेयesian फ़िल्टरों को हराने के लिए, स्पैमर के लिए अपने ईमेल को अद्वितीय बनाना या व्यक्तिगत अश्लील शब्दों का उपयोग करना बंद करना पर्याप्त नहीं होगा। उन्हें अपने मेल को आपके सामान्य मेल से अप्रभेद्य बनाना होगा। और मुझे लगता है कि यह उन्हें गंभीर रूप से सीमित करेगा। स्पैम ज्यादातर बिक्री पिच हैं, इसलिए जब तक आपका नियमित मेल सभी बिक्री पिच नहीं है, स्पैम का एक अलग चरित्र होगा। और स्पैमर को निश्चित रूप से अपने पूरे बुनियादी ढांचे को बदलना (और बदलते रहना) होगा, क्योंकि अन्यथा हेडर बेयesian फ़िल्टरों के लिए हमेशा की तरह खराब दिखेंगे, चाहे वे संदेश के शरीर के साथ क्या करें। मुझे नहीं पता कि स्पैमर जो बुनियादी ढांचा उपयोग करते हैं, उसके बारे में मुझे कितना पता है कि हेडर को निर्दोष दिखाना कितना कठिन होगा, लेकिन मेरा अनुमान है कि यह संदेश को निर्दोष दिखाने की तुलना में और भी कठिन होगा।
मान लें कि वे हेडर की समस्या को हल कर सकते हैं, भविष्य का स्पैम शायद इस तरह दिखेगा:
हे वहाँ। सोचा कि आपको निम्नलिखित की जांच करनी चाहिए: http://www.27meg.com/foo
क्योंकि यह सामग्री-आधारित फ़िल्टरिंग को स्पैमर को बनाने के लिए छोड़ने के लिए बिक्री पिच के रूप में लगभग इतना ही है। (वास्तव में, इसे फ़िल्टर के माध्यम से प्राप्त करना कठिन होगा, क्योंकि यदि ईमेल में बाकी सब कुछ तटस्थ है, तो स्पैम संभावना URL पर निर्भर करेगी, और इसे तटस्थ दिखाने के लिए कुछ प्रयास करना होगा।)
स्पैमर उन व्यवसायों से लेकर होते हैं जो所谓 के ऑप्ट-इन सूचियों का संचालन करते हैं जो अपनी पहचान को छिपाने की भी कोशिश नहीं करते हैं, उन लोगों तक जो मेल सर्वरों को हाईजैक करते हैं ताकि वे अश्लील साइटों को बढ़ावा देने वाले स्पैम भेज सकें। यदि हम फ़िल्टरिंग का उपयोग करके उनके विकल्पों को ऊपर दिए गए मेल जैसे मेल तक सीमित कर देते हैं, तो यह स्पैमर्स को "वैध" स्पेक्ट्रम के अंत से बाहर कर देगा; वे विभिन्न राज्य कानूनों द्वारा अपने स्पैम को स्पैम न होने के कारण और आपकी "सदस्यता" को रद्द करने के तरीके के बारे में क्यों शामिल करना है, और इस तरह के पाठ को पहचानना आसान है।
(मुझे पहले लगता था कि यह naive है कि सख्त कानून स्पैम को कम कर देंगे। अब मुझे लगता है कि जबकि सख्त कानून शायद स्पैम की मात्रा को कम नहीं करेंगे जो स्पैमर भेजते हैं, वे निश्चित रूप से फ़िल्टरों को उस स्पैम की मात्रा को कम करने में मदद कर सकते हैं जो प्राप्तकर्ता वास्तव में देखते हैं।)
स्पेक्ट्रम के साथ-साथ, यदि आप स्पैमर्स द्वारा किए जा सकने वाले बिक्री पिचों को सीमित करते हैं, तो आप अनिवार्य रूप से उन्हें व्यवसाय से बाहर करने की प्रवृत्ति रखेंगे। वह शब्द व्यवसाय याद रखने के लिए एक महत्वपूर्ण है। स्पैमर व्यवसायी हैं। वे स्पैम भेजते हैं क्योंकि यह काम करता है। यह काम करता है क्योंकि हालांकि प्रतिक्रिया दर भयानक रूप से कम है (अधिकतम 15 प्रति मिलियन, बनाम 3000 प्रति मिलियन एक कैटलॉग मेलिंग के लिए), उनके लिए लागत लगभग कुछ भी नहीं है। प्राप्तकर्ताओं के लिए लागत बहुत अधिक है, प्रत्येक मिलियन प्राप्तकर्ताओं के लिए लगभग 5 व्यक्ति-सप्ताह जो स्पैम को हटाने के लिए एक सेकंड बिताते हैं, लेकिन स्पैमर को इसकी कीमत चुकानी नहीं होती।
स्पैम भेजने से स्पैमर को कुछ लागत आती है, हालांकि। [2] इसलिए हम प्रतिक्रिया दर को जितना कम कर सकते हैं - चाहे फ़िल्टरिंग द्वारा, या फ़िल्टरों का उपयोग करके स्पैमर्स को अपने पिचों को पतला करने के लिए मजबूर करने के द्वारा - उतने ही कम व्यवसायों को स्पैम भेजना लाभदायक लगेगा।
स्पैमर जिस प्रकार के बिक्री पिचों का उपयोग करते हैं, उसका कारण प्रतिक्रिया दरों को बढ़ाना है। यह शायद स्पैमर के मन में जाने से भी अधिक घृणित है, लेकिन चलिए एक ऐसे व्यक्ति के मन में एक त्वरित नज़र डालते हैं जो स्पैम का प्रतिक्रिया करता है। यह व्यक्ति या तो आश्चर्यजनक रूप से विश्वास करने वाला है या अपने यौन रुचियों के बारे में गहरे इनकार में है। किसी भी मामले में, जैसा कि स्पैम हमारे लिए घृणित या मूर्खतापूर्ण लगता है, यह उनके लिए रोमांचक है। स्पैमर ये बातें नहीं कहेंगे यदि वे रोमांचक नहीं लगतीं। और "सोचा कि आपको निम्नलिखित की जांच करनी चाहिए" स्पैम प्राप्तकर्ता के साथ उतना आकर्षण नहीं रखेगा जितना कि स्पैमर अब कहते हैं। परिणाम: यदि इसमें रोमांचक बिक्री पिचें नहीं हो सकती हैं, तो स्पैम एक विपणन वाहन के रूप में कम प्रभावी हो जाता है, और कम व्यवसाय इसका उपयोग करना चाहते हैं।
यह अंत में बड़ा जीत है। मैंने स्पैम फ़िल्टरिंग सॉफ़्टवेयर लिखना शुरू किया क्योंकि मैं अब इसे देखना नहीं चाहता था। लेकिन यदि हम स्पैम को फ़िल्टर करने में अच्छे हो जाते हैं, तो यह काम करना बंद कर देगा, और स्पैमर वास्तव में इसे भेजना बंद कर देंगे।
स्पैम से लड़ने के सभी दृष्टिकोणों में, सॉफ़्टवेयर से लेकर कानूनों तक, मुझे विश्वास है कि बेयesian फ़िल्टरिंग सबसे प्रभावी होगी। लेकिन मुझे यह भी लगता है कि हम जितने अधिक प्रकार के एंटीस्पैम प्रयास करते हैं, उतना ही बेहतर है, क्योंकि कोई भी उपाय जो स्पैमर्स को सीमित करता है, फ़िल्टरिंग को आसान बनाने की प्रवृत्ति रखेगा। और सामग्री-आधारित फ़िल्टरिंग की दुनिया के भीतर भी, मुझे लगता है कि यदि कई अलग-अलग प्रकार के सॉफ़्टवेयर एक साथ उपयोग किए जा रहे हैं, तो यह एक अच्छा विचार होगा। जितने अधिक फ़िल्टर होंगे, स्पैमर्स के लिए उन्हें पार करने के लिए स्पैम को ट्यून करना उतना ही कठिन होगा।
परिशिष्ट: फ़िल्टरिंग के उदाहरण
यहाँ एक स्पैम का उदाहरण है जो इस लेख को लिखते समय आया। इस स्पैम में सबसे दिलचस्प पंद्रह शब्द हैं:
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" स्पष्ट रूप से "प्रिय महोदय या महोदया" से शुरू होने वाले स्पैम से है। वे बहुत सामान्य नहीं होते, लेकिन "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 स्पैम में से एक में भी नहीं हुआ है। डेटा में ऐसे आश्चर्य से भरा हुआ है। जब आप स्पैम पाठों का विश्लेषण करते हैं, तो आप यह सीखते हैं कि स्पैमर्स किस संकीर्ण भाषा के उपसमुच्चय में काम करते हैं। यह तथ्य, किसी भी व्यक्तिगत उपयोगकर्ता के मेल की समान रूप से विशिष्ट शब्दावली के साथ मिलकर, बेयesian फ़िल्टरिंग को एक अच्छा दांव बनाता है।
परिशिष्ट: अधिक विचार
एक विचार जिसे मैंने अभी तक आजमाया नहीं है वह है शब्द जोड़ों, या यहां तक कि त्रियों के आधार पर फ़िल्टर करना, व्यक्तिगत शब्दों के बजाय। इससे संभावना का एक बहुत तेज़ अनुमान प्राप्त होना चाहिए। उदाहरण के लिए, मेरी वर्तमान डेटाबेस में, "offers" शब्द की संभावना .96 है। यदि आप संभावनाओं को शब्द जोड़ों के आधार पर रखते हैं, तो आप "special offers" और "valuable offers" को .99 और, कहें, "approach offers" (जैसे "यह दृष्टिकोण प्रस्तावित करता है") को .1 या उससे कम की संभावना के साथ समाप्त करेंगे।
मैंने ऐसा नहीं किया है क्योंकि व्यक्तिगत शब्दों के आधार पर फ़िल्टरिंग पहले से ही इतनी अच्छी तरह से काम करती है। लेकिन इसका मतलब यह है कि यदि स्पैम पहचानना कठिन हो जाता है तो फ़िल्टर को कसने की गुंजाइश है। (अजीब बात है, शब्द जोड़ों के आधार पर एक फ़िल्टर प्रभावी रूप से एक मार्कोव-चेनिंग टेक्स्ट जनरेटर होगा जो उल्टा चल रहा है।)
विशिष्ट स्पैम विशेषताएँ (जैसे प्राप्तकर्ता के पते को "to:" फ़ील्ड में नहीं देखना) निश्चित रूप से स्पैम को पहचानने में मूल्य रखते हैं। इन्हें इस एल्गोरिदम में आभासी शब्दों के रूप में मानकर विचार किया जा सकता है। मैं शायद भविष्य के संस्करणों में ऐसा करूंगा, कम से कम सबसे गंभीर स्पैम संकेतकों में से कुछ के लिए। फ़ीचर-मान्यता स्पैम फ़िल्टर कई विवरणों में सही हैं; जो चीज़ उन्हें कमी है वह सबूतों को जोड़ने के लिए एक समग्र अनुशासन है।
गैर-स्पैम विशेषताओं को पहचानना स्पैम विशेषताओं को पहचानने से अधिक महत्वपूर्ण हो सकता है। झूठे सकारात्मक एक ऐसी चिंता हैं जो असाधारण उपायों की मांग करती हैं। मैं शायद भविष्य के संस्करणों में झूठे सकारात्मक से बचने के लिए विशेष रूप से डिज़ाइन किए गए परीक्षण के एक दूसरे स्तर को जोड़ूंगा। यदि कोई मेल इस दूसरे स्तर के फ़िल्टर को ट्रिगर करता है, तो इसे स्वीकार किया जाएगा, भले ही इसकी स्पैम संभावना सीमा से ऊपर हो।
मैं इस दूसरे स्तर की फ़िल्टरिंग को बेयesian नहीं मानता। यह अनिवार्य रूप से न केवल तात्कालिक होगा, बल्कि अनुमान पर आधारित होगा, क्योंकि झूठे सकारात्मक की संख्या पैटर्न को नोटिस करने के लिए बड़ी नहीं होगी। (यह ठीक है, वैसे भी, यदि एक बैकअप सिस्टम प्राथमिक सिस्टम के समान तकनीक पर निर्भर नहीं करता है।)
एक और चीज़ जिसे मैं भविष्य में आजमाने की योजना बना रहा हूँ वह है ईमेल के विशिष्ट भागों पर अतिरिक्त ध्यान केंद्रित करना। उदाहरण के लिए, वर्तमान स्पैम का लगभग 95% उस साइट का URL शामिल करता है जिसे वे चाहते हैं कि आप देखें। (शेष 5% आपको एक फोन नंबर पर कॉल करने, ईमेल द्वारा या एक यूएस मेल पते पर जवाब देने, या कुछ मामलों में एक निश्चित स्टॉक खरीदने के लिए चाहते हैं।) ऐसे मामलों में URL लगभग अपने आप में यह निर्धारित करने के लिए पर्याप्त है कि ईमेल स्पैम है।
डोमेन नाम एक (गैर-जर्मन) ईमेल में बाकी पाठ से इस मायने में भिन्न होते हैं कि वे अक्सर कई शब्दों से जुड़े होते हैं। सामान्य मामले में गणनात्मक रूप से महंगा होने के बावजूद, उन्हें विघटित करने का प्रयास करना सार्थक हो सकता है। यदि एक फ़िल्टर ने पहले कभी "xxxporn" टोकन नहीं देखा है, तो इसकी व्यक्तिगत स्पैम संभावना .4 होगी, जबकि "xxx" और "porn" व्यक्तिगत रूप से (मेरे कॉर्पस में) .9889 और .99 की संभावनाएँ हैं, और एक संयुक्त संभावना .9998 है।
मुझे उम्मीद है कि डोमेन नामों को विघटित करना अधिक महत्वपूर्ण हो जाएगा क्योंकि स्पैमर धीरे-धीरे अपने संदेशों के पाठ में निंदनीय शब्दों का उपयोग करना बंद करने के लिए मजबूर होते हैं। (एक आईपी पते के साथ एक URL निश्चित रूप से एक अत्यधिक निंदनीय संकेत है, सिवाय कुछ सिस्टम प्रशासकों के मेल में।)
स्पैमर्स द्वारा प्रचारित URLs की एक सहकारी रूप से बनाए रखी गई सूची होना एक अच्छा विचार हो सकता है। हमें Raph Levien द्वारा अध्ययन किए गए प्रकार के एक विश्वास मैट्रिक की आवश्यकता होगी ताकि दुर्भावनापूर्ण या अक्षम प्रस्तुतियों को रोका जा सके, लेकिन यदि हमारे पास ऐसा कुछ है, तो यह किसी भी फ़िल्टरिंग सॉफ़्टवेयर को बढ़ावा देगा। यह बहिष्कार के लिए एक सुविधाजनक आधार भी होगा।
एक और तरीका संदिग्ध URLs का परीक्षण करने का होगा कि उपयोगकर्ता ने इसे संदर्भित करने वाले ईमेल को देखने से पहले साइट को देखने के लिए एक क्रॉलर भेजा जाए। आप साइट को उसी तरह रेट करने के लिए एक बेयesian फ़िल्टर का उपयोग कर सकते हैं जैसे आप एक ईमेल को रेट करते हैं, और जो कुछ भी साइट पर पाया गया उसे ईमेल के स्पैम होने की संभावना की गणना में शामिल किया जा सकता है। एक URL जो एक रीडायरेक्ट की ओर ले जाता है, निश्चित रूप से विशेष रूप से संदिग्ध होगा।
एक सहकारी परियोजना जो मुझे लगता है कि वास्तव में एक अच्छा विचार होगा, वह है स्पैम का एक विशाल कॉर्पस इकट्ठा करना। एक बड़ा, साफ कॉर्पस बेयesian फ़िल्टरिंग को अच्छी तरह से काम करने की कुंजी है। बेयesian फ़िल्टर वास्तव में इस कॉर्पस का इनपुट के रूप में उपयोग कर सकते हैं। लेकिन ऐसा कॉर्पस अन्य प्रकार के फ़िल्टरों के लिए भी उपयोगी होगा, क्योंकि इसका उपयोग उन्हें परीक्षण करने के लिए किया जा सकता है।
ऐसे कॉर्पस को बनाना कुछ तकनीकी समस्याएँ प्रस्तुत करता है। हमें निश्चित रूप से दुर्भावनापूर्ण या अक्षम प्रस्तुतियों को रोकने के लिए विश्वास मैट्रिक्स की आवश्यकता होगी। हमें कॉर्पस में मेल से व्यक्तिगत जानकारी (केवल "to" पते और "cc" नहीं, बल्कि उदाहरण के लिए अनसब्सक्राइब URLs के तर्क भी, जो अक्सर "to" पते को एन्कोड करते हैं) मिटाने के तरीके भी चाहिए। यदि कोई इस परियोजना को लेने के लिए इच्छुक है, तो यह दुनिया के लिए एक अच्छा काम होगा।
परिशिष्ट: स्पैम को परिभाषित करना
मुझे लगता है कि स्पैम क्या है, इस पर एक मोटा सहमति है, लेकिन एक स्पष्ट परिभाषा होना उपयोगी होगा। यदि हम स्पैम का एक केंद्रीय कॉर्पस स्थापित करना चाहते हैं, या यहां तक कि स्पैम फ़िल्टरिंग दरों की सार्थक तुलना करना चाहते हैं, तो हमें यह करने की आवश्यकता होगी।
शुरुआत करने के लिए, स्पैम अनचाही व्यावसायिक ईमेल नहीं है। यदि मेरे पड़ोस में किसी ने सुना कि मैं एक पुराने रैले तीन-स्पीड की अच्छी स्थिति में तलाश कर रहा हूँ, और मुझे एक बेचने के लिए ईमेल भेजा, तो मैं खुश हो जाऊँगा, और फिर भी यह ईमेल व्यावसायिक और अनचाही दोनों होगी। स्पैम की परिभाषित विशेषता (वास्तव में, इसका raison d'etre) यह नहीं है कि यह अनचाही है, बल्कि यह है कि यह स्वचालित है।
यह भी केवल संयोग है कि स्पैम आमतौर पर व्यावसायिक होता है। यदि कोई किसी राजनीतिक कारण का समर्थन करने के लिए सामूहिक ईमेल भेजना शुरू करता है, उदाहरण के लिए, तो यह एक अश्लील साइट को बढ़ावा देने वाले ईमेल के रूप में उतना ही स्पैम होगा।
मैं प्रस्तावित करता हूँ कि हम स्पैम को अनचाही स्वचालित ईमेल के रूप में परिभाषित करें। इस परिभाषा में कुछ ईमेल भी शामिल हैं जो कई कानूनी स्पैम परिभाषाएँ नहीं करती हैं। कानूनी स्पैम परिभाषाएँ, शायद लॉबिस्टों द्वारा प्रभावित, आमतौर पर उन कंपनियों द्वारा भेजे गए मेल को बाहर करती हैं जिनका प्राप्तकर्ता के साथ "मौजूदा संबंध" होता है। लेकिन किसी कंपनी से कुछ खरीदना, उदाहरण के लिए, यह नहीं दर्शाता कि आपने उनसे निरंतर ईमेल प्राप्त करने के लिए अनुरोध किया है। यदि मैं एक ऑनलाइन स्टोर से कुछ ऑर्डर करता हूँ, और वे फिर मुझे स्पैम की एक धारा भेजते हैं, तो यह अभी भी स्पैम है।
स्पैम भेजने वाली कंपनियाँ अक्सर आपको "अनसब्सक्राइब" करने का एक तरीका देती हैं, या यदि आप स्पैम प्राप्त करना बंद करना चाहते हैं तो आपको उनकी साइट पर जाकर अपने "खाता प्राथमिकताओं" को बदलने के लिए कहती हैं। यह मेल को स्पैम होने से रोकने के लिए पर्याप्त नहीं है। बाहर न निकलना, अंदर जाने के समान नहीं है। जब तक प्राप्तकर्ता ने स्पष्ट रूप से एक स्पष्ट रूप से लेबल किए गए बॉक्स (जिसका डिफ़ॉल्ट नहीं था) को चेक नहीं किया है, जो ईमेल प्राप्त करने के लिए पूछता है, तब तक यह स्पैम है।
कुछ व्यावसायिक संबंधों में, आप कुछ प्रकार के मेल को निहित रूप से अनुरोध करते हैं। जब आप ऑनलाइन ऑर्डर करते हैं, तो मुझे लगता है कि आप निहित रूप से एक रसीद और जब ऑर्डर शिप होता है, तो सूचनाएँ मांगते हैं। मुझे तब कोई आपत्ति नहीं है जब वेरिसाइन मुझे चेतावनी देने वाला मेल भेजता है कि एक डोमेन नाम समाप्त होने वाला है (कम से कम, यदि वे इसके लिए वास्तविक रजिस्ट्रार हैं)। लेकिन जब वेरिसाइन मुझे एक मुफ्त गाइड भेजता है जो मेरे ई-कॉमर्स वेबसाइट को बनाने के लिए है, तो यह स्पैम है।
नोट्स:
[1] इस लेख में उदाहरणों को कॉमन लिस्प में अनुवादित किया गया है, विश्वास करें या नहीं, अधिक पहुंच के लिए। यहाँ वर्णित अनुप्रयोग एक ऐसा है जिसे हमने एक नए लिस्प डायलेक्ट Arc का परीक्षण करने के लिए लिखा था जो अभी तक जारी नहीं हुआ है।
[2] वर्तमान में सबसे कम दर लगभग $200 प्रतीत होती है एक मिलियन स्पैम भेजने के लिए। यह बहुत सस्ता है, प्रति स्पैम 1/50 सेंट। लेकिन उदाहरण के लिए, 95% स्पैम को फ़िल्टर करने से स्पैमर के लिए एक निश्चित दर्शकों तक पहुँचने की लागत 20 गुना बढ़ जाएगी। कुछ ही ऐसे हो सकते हैं जिनके पास इसे अवशोषित करने के लिए बड़े मार्जिन हों।
[3] एक नियम के रूप में, जितने अधिक विशेषण किसी देश के नाम से पहले होते हैं, उतने ही अधिक भ्रष्ट शासक होते हैं। "The Socialist People's Democratic Republic of X" नामक देश शायद दुनिया में रहने के लिए आप चाहेंगे।
धन्यवाद सारा हार्लिन को इसके ड्राफ्ट पढ़ने के लिए; डैनियल गिफ़िन (जो उत्पादन Arc इंटरप्रेटर भी लिख रहे हैं) को फ़िल्टरिंग के बारे में कई अच्छे विचारों के लिए और हमारे मेल बुनियादी ढांचे को बनाने के लिए; रॉबर्ट मॉरिस, ट्रेवर ब्लैकवेल और एरान गेट को स्पैम के बारे में कई चर्चाओं के लिए; राफ़ लेवियन को विश्वास मैट्रिक्स के बारे में सलाह के लिए; और चिप कोल्डवेल और सैम स्टाइनगोल्ड को सांख्यिकी के बारे में सलाह के लिए।
आप इस निबंध और 14 अन्य को [
हैकर और चित्रकार
](http://www.amazon.com/gp/product/0596006624) में पाएंगे।
अधिक जानकारी: