1、基于 ASP 的反垃圾邮件管理系统的设计摘 要随着 Internet 的迅速普及,电子邮件以其快捷、方便、低成本的特点逐渐成为人们进行信息交流的主要媒介之一,但是随之而来的垃圾邮件也越来越泛滥。垃圾邮件占用了有限的存储、计算和网络资源,耗费了用户大量的处理时间,影响和干扰了用户的正常工作、生活和学习。如何有效地治理垃圾邮件是全世界共同面临的一道难题,也是互连网上目前有待解决的问题。本文首先介绍了电子邮件对人们日常生活的重要性,然后概要介绍了反垃圾邮件技术的发展历史。研究了三种过滤垃圾邮件的方法,分别是黑白名单技术、主题关键字过滤技术和贝叶斯策略,对这三种技术的设计方法做了说明,重点介绍了贝叶斯
2、过滤技术的设计原理和实现步骤。最后总结了这几种过滤技术的不足之处和设计中遇到的难点问题。关键词:电子邮件;垃圾邮件;黑白名单;主题关键字;贝叶斯Design of anti-spam mail management system based on ASPAbstractWith the rapid development of internet, the technology of email is used widely in peoples daily life. However, the occurrence of more and more spam emails is annoyin
3、g to user, which causes the great waste of users time, money as well as network bandwidth. And whats worst, it can be harmful to users. It affects and interferes with the users normal work, life and studying. How to deal with spam emails effectively, that is a common difficult problem for all over t
4、he world. In the current Internet it is a problem for waiting for us to resolve. At first this paper introduces the e-mails importance for peoples daily life. Then it introduces simply development history of the anti-spam technology and researches three of spam filtering methods, they are black and
5、white list technology, subject keyword filtering technology and bayesian strategy. Then the designing methods of three kinds of technology are introduced. Focusing on the bayesian filtering technology, this paper introduces its designing principle and implementations steps. Finally I sums up some sh
6、ortcomings of several kinds of filtering technology and some difficult problems in designing.Key words: email; spam email; black and white list; subject keyword; bayesian目 录论文总页数:22 页1 引言 .111 课题背景 .112 开发概述 .11.2.1 电子邮件概述 .11.2.2 反垃圾概述 .22 电子邮件的工作原理 .221 电子邮件的结构 .222 电子邮件的传输 .33 需求分析 .331 数据库需求分析 .
7、332 开发环境需求 .54 系统功能和技术描述 .641 系统功能模块设计 .642 基本功能 .643 黑白名单技术 .744 关键字过滤技术 .745 贝叶斯过滤技术 .84.5.1 贝叶斯过滤算法的基本步骤 .84.5.2 贝叶斯过滤算法举例 .94.5.3 贝叶斯过滤模块划分 .105 系统工作流程和详细设计 .1151 系统工作流程图 .1152 邮件统计设计 .1153 收件夹设计 .1254 反垃圾功能设计 .135.4.1 黑白名单过滤 .135.4.2 主题关键字过滤 .145.4.3 贝叶斯过滤 .155.4.4 过滤参数设置 .176 测试与分析 .1761 系统测试
8、.1762 设计中的难点问题 .1863 三种过滤技术分析 .1964 通用模块分析 .19结 论 .20参考文献 .20致 谢 .21声 明 .22第 1 页 共 22 页1 引言11 课题背景随着 Internet 的极度膨胀,给人们带来了大量的信息,电子邮件使人们感受到快捷和方便,更已成为一种最快速经济的通信手段,但是互联网又是一个无政府世界,有些人利用电子邮件肆意散发邮件广告,造成很多人的邮箱垃圾成堆,有些人利用电子邮箱制造邮件炸弹,使电子邮件服务器瘫痪;更有甚者利用电子邮件来传播病毒。如此种种给许多用户带来了无尽的困扰。因此对垃圾邮件进行有效的过滤,已经成为了一个有重要意义的现实问题
9、。目前,我国对垃圾邮件过滤研究中语义分析和文本分类方面的技术还比较落后,导致国内很多大型的电子邮件系统无法及时有效地发现和拒绝垃圾邮件,从而给用户造成巨大的伤害。更为严重的是国外很多垃圾邮件制造者利用这一缺陷,通过中国的邮件服务器发送垃圾邮件,致使很多国外 ISP 服务提供商封锁了中国邮件服务器的 IP 地址,给中国用户造成很多精神和经济损失。随着中国经济与世界经济的关系日益紧密,中外交流活动的逐渐增多,对外的电子邮件数量也急剧增加,如果中国电子邮件由于垃圾邮件问题遭到全面封杀,必将会对国内企业和组织造成巨大影响,严重组碍中国经济的发展。因此,对新的,可靠的垃圾邮件过滤技术的研究已经成为一项紧
10、迫任务。12 开发概述1.2.1 电子邮件概述电子邮件表示通过电子通讯系统进行信件的书写、发送和接收。今天使用的最多的通讯系统是互联网,同时电子邮件也是互联网上最受欢迎的功能之一。通过电子邮件系统,您可以用非常低廉的价格,以非常快速的方式(几秒钟之内可以发送到世界上任何你指定的目的地),与世界上任何一个角落的网络用户联络。同时,您可以得到大量免费的新闻、专题邮件,并实现轻松的信息搜索。这是任何传统的方式也无法相比的。正是由于电子邮件的使用简易、投递迅速、收费低廉,易于保存、全球畅通无阻,使得电子邮件被广泛地应用,它使人们的交流方式得到了极大的改变。每一个申请互联网帐号的用户都会有一个电子邮件地
11、址。它是一个很类似于用户家门牌号码的邮箱地址,或者更准确地说,相当于你在邮局租用了一个信箱。因为传统的信件是由邮递员送到你的家门口,而电子邮件则需要自己去查看信箱,只是您不用跨出家门一步。电子邮件来源于专有电子邮件系统。早在互联网流行以前很久,电子邮件就已经存在了,是在主机-多终端的主从式体系中从一台计算机终端向另一计算机终端传送文本信息的相对简单的方法而发展起来的。第 2 页 共 22 页经历了漫长的过程之后,它现在已经演变成为一个更加复杂并丰富得多的系统,可以传送声音、图片、图像、文档等多媒体信息,以至于如数据库或帐目报告等更加专业化的文件都可以以电子邮件附件的形式在网上分发。1.2.2
12、反垃圾概述“垃圾邮件”多指未经请求而发送的电子邮件,也可以是发送给与信件主题不相关的新闻组或者列表服务器的同一信件的重复邮件。国内外的技术专家和反垃圾邮件组织对“垃圾邮件”的定义如出一辙:批量发送的未征得收信人同意的电子邮件。 这些电子邮件虽然每封的信息量不一定很大,但是邮件内容不是大多数用户需要甚至是令大多数用户讨厌的。铺天盖地的宣传邮件不仅侵犯了用户的私人空间,而且干扰了大多数用户正常使用电子邮件功能,同时给用户带来了上网时间和上网资金上的浪费,因此被称为“垃圾邮件” 。国际互联网上的常见名词 SPAM、 UCE(Unsolicited Commercial Email 不请自来的商业电子
13、邮件)和 UBE(Unsolicited Bulk Email 不请自来的批量电子邮件)与通常所称的垃圾邮件是一样的。反垃圾邮件技术的研究是一项长期而艰巨的任务,经历了以下几个时代:表 1-1 反垃圾邮件的历史第一代 第二代 第三代 第四代基础 MTA 控制 实时黑名单 贝叶斯过滤 多技术整和分层过滤白名单和黑名单 电子签名 人工智能简单的关键字搜索 机器语言学习信件头测试标题过滤简单的 DNS 测试当前的反垃圾邮件技术可以分为 4 大类:过滤器(Filter) 、反向查询(Reverse lookup)、挑战 (challenges)和密码术(cryptography),这些解决办法都可以减
14、少垃圾邮件问题,但是都有它们的局限性。其中过滤又包括关键词过滤、黑白名单、HASH 技术、基于规则的过滤、智能和概率系统、贝叶斯算法,验证查询技术分为反向查询技术、DKIM 技术、SenderID 技术、FairUCE 技术,挑战分为挑战-响应、计算性挑战。2 电子邮件的工作原理21 电子邮件的结构电子邮件可视为半结构化的文本文件。RFC822 明确的把邮件划分为两部分:第 1 部分称为邮件头,邮件头中包含若干数据字段,其作用是标识邮件的重要第 3 页 共 22 页部分,例如发送者、接收者、主题和注释。邮件头字段应出现在邮件体之前,两部分间使用一个空行分隔。第 2 部分就是邮件体(body)
15、,邮件体(body)是发送用户发给接收用户邮件的内容。22 电子邮件的传输电子邮件与普通信件有类似的地方,发信者注明收件人的姓名与地址(即邮件地址) ,发送方服务器把邮件传到收件方服务器,收件方服务器再把邮件发到收件人的邮箱中,如下图所示:用户 邮件服务器SMTP邮件服务器 用户图 2-1 高层 SMTP 接口模型电子邮件系统主要由以下 3 部分组成:MUA (Mail UserAgent),邮件用户代理,是帮助用户读和写邮件;MTA (MailTransport Agent),邮件传输代理,负责将邮件从一个服务器传到另一个服务器;MDA(MailDeliveryAgent),邮件投递代理,将
16、邮件分发到用户的邮箱里。整个邮件传输过程如下图所示:MUA MTAMDA发件方 MTAMDA 邮箱接收方SMTP图 2-2 邮件传输中的代理3 需求分析31 数据库需求分析该系统采用 Microsoft SQL Server 2000 数据库,数据库的名称 mail。对系统功能的分析绘制了系统总体 E-R 图,如图 3-1 所示:第 4 页 共 22 页写邮件邮件发送接收属于收件夹垃圾邮件 正常邮件显示垃圾邮件过滤n图 3-1 系统 E-R 图为了消除数据的冗于在表中采取了主关键字。根据数据库功能模块的不同,所做需求分析的不同建立了以下表,它们分别是:1. 用于保存邮件夹内邮件信息的数据表,具
17、体设计如表 3-1 所示:表 3-1 mail 数据表字段名称 字段说明 字段类型 主关键字mailitem 邮件编号 int *mailfrom 发件人地址 varcharmailto 收件人地址 varcharmaildate 发件日期 datetimemailsubject 邮件主题 varcharmailbody 邮件内容 varchar2. 用于保存所添加的黑白名单邮件地址的数据表,具体设计如表所示:表 3-2 black_mailadd 数据表字段名称 字段说明 字段类型 主关键字ID 编号 int *Mailadd 黑名单邮件地址 varchar表 3-3 white_maila
18、dd 数据表字段名称 字段说明 字段类型 主关键字ID 编号 int *Mailadd 白名单邮件地址 varchar3. 用于保存用户添加的主题关键字的信息表,具体设计如表所示:表 3-4 key_word 数据表字段名称 字段说明 字段类型 主关键字ID 编号 int *word 被过滤的关键字 varchar111n1111第 5 页 共 22 页4. 贝叶斯过滤所要用到的数据表,具体设计如表所示:表 3-5 drop_word 数据表字段名称 字段说明 字段类型 主关键字ID 编号 int *word 不做分析的常用字 varchar表 3-6 bayes_field 数据表字段名称
19、字段说明 字段类型 主关键字ID 编号 int *value 阈值 int表 3-7 hash_all 数据表字段名称 字段说明 字段类型 主关键字ID 编号 int *token 独立字串 varchargood_time 出现在合法邮件中次数 intgood_pro 出现在合法邮件中概率 floatbad_time 出现在垃圾邮件中次数 intbad_pro 出现在垃圾邮件中概率 float表 3-8 hash_pro 数据表字段名称 字段说明 字段类型 主关键字ID 编号 int *token 独立字串 varchartoken_pro 垃圾邮件综合概率 float32 开发环境需求安装
20、此系统所需的基本软、硬件环境为: Windows95、 Windows98 或 WindowsNT/2000/XP。 Microsoft SQL Server 2000 数据库 Pentium100 及以上档次的 IBM PC 及其兼容机。 128M 以上内存。 5000M 以上可用硬盘空间。 高密软盘驱动器。 VGA 显示器。 CDROM 驱动器。 本程序在 Windows2000 Professional 操作系统下,以中文Dreamweaver MX 2004 为前台开发工具,用中文版 Microsoft SQL Server 2000 数据库为后台数据库。第 6 页 共 22 页4 系
21、统功能和技术描述41 系统功能模块设计本系统分为三个大模块,每个大模块下有不同的功能划分,模块结构图如图 4-1 所示:反垃圾邮件管理系统日常操作 邮件夹 垃圾邮件过滤收邮件写邮件收件夹垃圾邮件夹过滤设置黑名单管理白名单管理主题关键字管理贝叶斯策略图 4-1 系统功能模块结构图1. 日常操作模块这个模块分为收邮件和写邮件两部分,用户可以通过这个模块收发电子邮件,完成正常邮件和垃圾邮件的接收,本系统是采用从本地数据库读取数据,为反垃圾技术的研究提供测试环境。2. 邮件夹此模块建立了两个文件夹,分别是收件夹和垃圾邮件夹,经过过滤的正常邮件显示在收件夹中,过滤后得到的垃圾邮件显示在垃圾邮件夹中。并可以对邮件进行删除和查看操作。3. 垃圾邮件过滤此模块是本设计的核心部分,采用了黑名单、白名单、主题关键字、贝叶斯过滤技术来过滤垃圾邮件,用户可以通过过滤设置来启动和停止这些过滤规则。42 基本功能通过黑名单、白名单、主题关键字、贝叶斯过滤技术完成客户端的垃圾邮件过滤,每个过滤规则在对邮件进行处理判断后,若可以确定邮件的属性,即