基于ASP的反垃圾邮件管理系统的设计

基于ASP的反垃圾邮件管理系统的设计[java毕业论文下载]

基于ASP的反垃圾邮件管理系统的设计

摘  要

随着Internet的迅速普及,电子邮件以其快捷、方便、低成本的特点逐渐成为人们进行信息交流的主要媒介之一,但是随之而来的垃圾邮件也越来越泛滥。垃圾邮件占用了有限的存储、计算和网络资源,耗费了用户大量的处理时间,影响和干扰了用户的正常工作、生活和学习。如何有效地治理垃圾邮件是全世界共同面临的一道难题,也是互连网上目前有待解决的问题。本文首先介绍了电子邮件对人们日常生活的重要性,然后概要介绍了反垃圾邮件技术的发展历史。研究了三种过滤垃圾邮件的方法,分别是黑白名单技术、主题关键字过滤技术和贝叶斯策略,对这三种技术的设计方法做了说明,重点介绍了贝叶斯过滤技术的设计原理和实现步骤。最后总结了这几种过滤技术的不足之处和设计中遇到的难点问题。

 

关键词电子邮件;垃圾邮件;黑白名单;主题关键字;贝叶斯

 

Design of anti-spam mail management system based on ASP

Abstract

With the rapid development of internet, the technology of email is used widely in people's daily life. However, the occurrence of more and more spam emails is annoying to user, which causes the great waste of user's time, money as well as network bandwidth. And what's worst, it can be harmful to users. It affects and interferes with the user's normal work, life and studying. How to deal with spam emails effectively, that is a common difficult problem for all over the world. In the current Internet it is a problem for waiting for us to resolve. At first this paper introduces the e-mail's importance for people's daily life. Then it introduces simply development history of the anti-spam technology and researches three of spam filtering methods, they are black and 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 implementation's steps. Finally I sums up some shortcomings 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 引言 1

1.1 课题背景 1

1.2 开发概述 1

1.2.1电子邮件概述 1

1.2.2反垃圾概述 2

2 电子邮件的工作原理 2

2.1 电子邮件的结构 2

2.2 电子邮件的传输 3

3 需求分析 3

3.1 数据库需求分析 3

3.2 开发环境需求 5

4 系统功能和技术描述 6

4.1 系统功能模块设计 6

4.2基本功能 6

4.3黑白名单技术 7

4.4 关键字过滤技术 7

4.5 贝叶斯过滤技术 8

4.5.1贝叶斯过滤算法的基本步骤 8

4.5.2贝叶斯过滤算法举例 9

4.5.3贝叶斯过滤模块划分 10

5 系统工作流程和详细设计 11

5.1 系统工作流程图 11

5.2邮件统计设计 11

5.3收件夹设计 12

5.4反垃圾功能设计 13

5.4.1黑白名单过滤 13

5.4.2主题关键字过滤 14

5.4.3贝叶斯过滤 15

5.4.4过滤参数设置 17

6 测试与分析 17

6.1系统测试 17

6.2设计中的难点问题 18

6.3三种过滤技术分析 19

6.4通用模块分析 19

结    论 20

参考文献 20

致    谢 21

声    明 22

 

 

引言

1.1 课题背景

随着Internet的极度膨胀,给人们带来了大量的信息,电子邮件使人们感受到快捷和方便,更已成为一种最快速经济的通信手段,但是互联网又是一个无政府世界,有些人利用电子邮件肆意散发邮件广告,造成很多人的邮箱垃圾成堆,有些人利用电子邮箱制造邮件炸弹,使电子邮件服务器瘫痪;更有甚者利用电子邮件来传播病毒。如此种种给许多用户带来了无尽的困扰。因此对垃圾邮件进行有效的过滤,已经成为了一个有重要意义的现实问题。目前,我国对垃圾邮件过滤研究中语义分析和文本分类方面的技术还比较落后,导致国内很多大型的电子邮件系统无法及时有效地发现和拒绝垃圾邮件,从而给用户造成巨大的伤害。更为严重的是国外很多垃圾邮件制造者利用这一缺陷,通过中国的邮件服务器发送垃圾邮件,致使很多国外ISP服务提供商封锁了中国邮件服务器的IP地址,给中国用户造成很多精神和经济损失。随着中国经济与世界经济的关系日益紧密,中外交流活动的逐渐增多,对外的电子邮件数量也急剧增加,如果中国电子邮件由于垃圾邮件问题遭到全面封杀,必将会对国内企业和组织造成巨大影响,严重组碍中国经济的发展。因此,对新的,可靠的垃圾邮件过滤技术的研究已经成为一项紧迫任务。

1.2 开发概述

1.2.1电子邮件概述

电子邮件表示通过电子通讯系统进行信件的书写、发送和接收。今天使用的最多的通讯系统是互联网,同时电子邮件也是互联网上最受欢迎的功能之一。通过电子邮件系统,您可以用非常低廉的价格,以非常快速的方式(几秒钟之内可以发送到世界上任何你指定的目的地),与世界上任何一个角落的网络用户联络。同时,您可以得到大量免费的新闻、专题邮件,并实现轻松的信息搜索。这是任何传统的方式也无法相比的。正是由于电子邮件的使用简易、投递迅速、收费低廉,易于保存、全球畅通无阻,使得电子邮件被广泛地应用,它使人们的交流方式得到了极大的改变。每一个申请互联网帐号的用户都会有一个电子邮件地址。它是一个很类似于用户家门牌号码的邮箱地址,或者更准确地说,相当于你在邮局租用了一个信箱。因为传统的信件是由邮递员送到你的家门口,而电子邮件则需要自己去查看信箱,只是您不用跨出家门一步。电子邮件来源于专有电子邮件系统。早在互联网流行以前很久,电子邮件就已经存在了,是在主机-多终端的主从式体系中从一台计算机终端向另一计算机终端传送文本信息的相对简单的方法而发展起来的。

经历了漫长的过程之后,它现在已经演变成为一个更加复杂并丰富得多的系统,可以传送声音、图片、图像、文档等多媒体信息,以至于如数据库或帐目报告等更加专业化的文件都可以以电子邮件附件的形式在网上分发。

1.2.2反垃圾概述

 “垃圾邮件”多指未经请求而发送的电子邮件,也可以是发送给与信件主题不相关的新闻组或者列表服务器的同一信件的重复邮件。国内外的技术专家和反垃圾邮件组织对“垃圾邮件”的定义如出一辙:批量发送的未征得收信人同意的电子邮件。 这些电子邮件虽然每封的信息量不一定很大,但是邮件内容不是大多数用户需要甚至是令大多数用户讨厌的。铺天盖地的宣传邮件不仅侵犯了用户的私人空间,而且干扰了大多数用户正常使用电子邮件功能,同时给用户带来了上网时间和上网资金上的浪费,因此被称为“垃圾邮件”。国际互联网上的常见名词SPAM、UCE(Unsolicited Commercial Email不请自来的商业电子邮件)和UBE(Unsolicited Bulk Email不请自来的批量电子邮件)与通常所称的垃圾邮件是一样的。反垃圾邮件技术的研究是一项长期而艰巨的任务,经历了以下几个时代:

表1-1 反垃圾邮件的历史

第一代

第二代

第三代

第四代

基础MTA控制

实时黑名单

贝叶斯过滤

多技术整和分层过滤

白名单和黑名单

电子签名

人工智能

 

简单的关键字搜索

 

机器语言学习

 

信件头测试

 

 

 

标题过滤

 

 

 

简单的DNS测试

 

 

 

当前的反垃圾邮件技术可以分为4大类:过滤器(Filter)、反向查询(Reverse lookup)、挑战(challenges)和密码术(cryptography),这些解决办法都可以减少垃圾邮件问题,但是都有它们的局限性。其中过滤又包括关键词过滤、黑白名单、HASH技术、基于规则的过滤、智能和概率系统、贝叶斯算法,验证查询技术分为反向查询技术、DKIM技术、SenderID技术、FairUCE技术,挑战分为挑战-响应、计算性挑战。

电子邮件的工作原理

2.1 电子邮件的结构

电子邮件可视为半结构化的文本文件。RFC822 明确的把邮件划分为两部分:第1 部分称为邮件头,邮件头中包含若干数据字段,其作用是标识邮件的重要部分,例如发送者、接收者、主题和注释。邮件头字段应出现在邮件体之前,两部分间使用一个空行分隔。第2 部分就是邮件体(body),邮件体(body)是发送用户发给接收用户邮件的内容。

2.2 电子邮件的传输

电子邮件与普通信件有类似的地方,发信者注明收件人的姓名与地址(即邮件地址),发送方服务器把邮件传到收件方服务器,收件方服务器再把邮件发到收件人的邮箱中,如下图所示:

图2-1 高层SMTP接口模型

电子邮件系统主要由以下3 部分组成:MUA (Mail UserAgent),邮件用户代理,是帮助用户读和写邮件;MTA (MailTransport Agent),邮件传输代理,负责将邮件从一个服务器传到另一个服务器;MDA(MailDeliveryAgent),邮件投递代理,将邮件分发到用户的邮箱里。整个邮件传输过程如下图所示:

 

 

 

 

 

 

 

 

图2-2 邮件传输中的代理

需求分析

3.1 数据库需求分析

该系统采用Microsoft SQL Server 2000数据库,数据库的名称mail。对系统功能的分析绘制了系统总体E-R图,如图3-1所示:

图3-1 系统E-R图

为了消除数据的冗于在表中采取了主关键字。根据数据库功能模块的不同,所做需求分析的不同建立了以下表,它们分别是:

  • 用于保存邮件夹内邮件信息的数据表,具体设计如表3-1所示:

表3-1 mail数据表

字段名称

字段说明

字段类型

主关键字

mailitem

邮件编号

int

*

mailfrom

发件人地址

varchar

 

mailto

收件人地址

varchar

 

maildate

发件日期

datetime

 

mailsubject

邮件主题

varchar

 

mailbody

邮件内容

varchar

 

  • 用于保存所添加的黑白名单邮件地址的数据表,具体设计如表所示:

表3-2 black_mailadd数据表

字段名称

字段说明

字段类型

主关键字

ID

编号

int

*

Mailadd

黑名单邮件地址

varchar

 

 

表3-3 white_mailadd数据表

字段名称

字段说明

字段类型

主关键字

ID

编号

int

*

Mailadd

白名单邮件地址

varchar

 

  • 用于保存用户添加的主题关键字的信息表,具体设计如表所示:

表3-4 key_word数据表

字段名称

字段说明

字段类型

主关键字

ID

编号

int

*

word

被过滤的关键字

varchar

 

 

  • 贝叶斯过滤所要用到的数据表,具体设计如表所示:

表3-5 drop_word数据表

字段名称

字段说明

字段类型

主关键字

ID

编号

int

*

word

不做分析的常用字

varchar

 

 

表3-6 bayes_field数据表

字段名称

字段说明

字段类型

主关键字

ID

编号

int

*

value

阈值

int

 

 

表3-7 hash_all数据表

字段名称

字段说明

字段类型

主关键字

ID

编号

int

*

token

独立字串

varchar

 

good_time

出现在合法邮件中次数

int

 

good_pro

出现在合法邮件中概率

float

 

bad_time

出现在垃圾邮件中次数

int

 

bad_pro

出现在垃圾邮件中概率

float

 

 

表3-8 hash_pro数据表

字段名称

字段说明

字段类型

主关键字

ID

编号

int

*

token

独立字串

varchar

 

token_pro

垃圾邮件综合概率

float

 

3.2 开发环境需求

安装此系统所需的基本软、硬件环境为:

l Windows95、 Windows98 或WindowsNT/2000/XP。

l Microsoft SQL Server 2000数据库

l Pentium100及以上档次的IBM PC及其兼容机。

l 128M以上内存。

l 5000M以上可用硬盘空间。

l 高密软盘驱动器。

l VGA显示器。

l CD——ROM驱动器。

l 本程序在Windows2000 Professional操作系统下,以中文Dreamweaver MX 2004为前台开发工具,用中文版Microsoft SQL Server 2000数据库为后台数据库。

 

系统功能和技术描述

4.1 系统功能模块设计

本系统分为三个大模块,每个大模块下有不同的功能划分,模块结构图如图4-1所示:

图4-1 系统功能模块结构图

这个模块分为收邮件和写邮件两部分,用户可以通过这个模块收发电子邮件,完成正常邮件和垃圾邮件的接收,本系统是采用从本地数据库读取数据,为反垃圾技术的研究提供测试环境。

  • 邮件夹

此模块建立了两个文件夹,分别是收件夹和垃圾邮件夹,经过过滤的正常邮件显示在收件夹中,过滤后得到的垃圾邮件显示在垃圾邮件夹中。并可以对邮件进行删除和查看操作。

  • 垃圾邮件过滤

此模块是本设计的核心部分,采用了黑名单、白名单、主题关键字、贝叶斯过滤技术来过滤垃圾邮件,用户可以通过过滤设置来启动和停止这些过滤规则。

4.2基本功能

通过黑名单、白名单、主题关键字、贝叶斯过滤技术完成客户端的垃圾邮件过滤,每个过滤规则在对邮件进行处理判断后,若可以确定邮件的属性,即为垃圾邮件或非垃圾邮件就可以直接把邮件显示在垃圾邮件夹和收件夹。客户端垃圾邮件过滤模型如下图所示:

图4-2 客户端垃圾邮件过滤模型

4.3黑白名单技术

黑名单是一个简单有效最常用的过滤方法,它首先检查邮件头,如果发送者在黑名单内,就拒绝接收该邮件。黑名单可以是发送垃圾邮件的服务器、开放的代理、开放的中继以及发送者邮箱地址。现在有很多组织都在做*bl(block list),将那些经常发送垃圾邮件的IP地址(甚至IP地址范围)收集在一起,做成block list。

白名单过滤的方法是在邮件过滤系统中维持一张白名单表,其中收录了用户认可的邮件地址。当收到的邮件其发送者在用户的白名单中,该邮件就被判定为正常邮件。这种方法能100%的屏蔽垃圾邮件,但是同时也会过滤掉很多第一次与收件人通信的正常邮件,而这些用户不在收件人的白名单中。

目前很多邮件接收端都采用了黑白名单的方式来处理垃圾邮件,包括MUA和MTA,当然在MTA中使用得更广泛,这样可以有效地减少服务器的负担。本文中黑名单和白名单分别是已知的垃圾邮件发送者或可信任的邮件发送者的邮件地址,这种技术手段是最传统的方式,它通过黑名单技术对垃圾邮件进行屏蔽,通过白名单技术对允许的邮件进行放行。

4.4 关键字过滤技术

这种技术是根据在邮件头、邮件主题或者邮件正文中是否含有设定的关键字符来判断邮件是否为垃圾邮件,然后采取处理措施。这种技术非常简单易行,现在的邮件客户端一般都提供这种技术。根据调查显示,采用基于关键字符技术的邮件过滤器能够捕获到60%的垃圾邮件。但是这种当邮件中含有某类的关键字符时就判定邮件为垃圾邮件的技术缺点非常致命,它的误确认率特别高。例如将单词"free"设置为过滤关键字,那么所有包含有这个单词的邮件都会被过滤掉,不管这封邮件来自于你的朋友还是垃圾邮件制造者。本文中是设置要过滤的邮件标题关键字,对标题中含有这些关键字的邮件进行过滤。

4.5 贝叶斯过滤技术

4.5.1贝叶斯过滤算法的基本步骤

第一步:通过收集大量的邮件,按规则分为垃圾邮件和非垃圾邮件,建立垃圾邮件集和非垃圾邮件集,相当于两个数据库;

第二步:提取邮件主题和邮件正文中的独立字串,如商品、易趣等作为TOKEN串,并统计提取出的TOKEN串出现的次数,即字频,按照上述方法分别处理垃圾邮件集和非垃圾邮件集中的所有邮件;

第三步:每一个邮件集对应一个哈希表,hashtable_good对应非垃圾邮件集而hashtable_bad对应垃圾邮件集。表中存储TOKEN串到字频的映射关系。如下所示:

TOKEN串         出现次数

商品                N1

易趣                N2

法轮功              N3

色情                N4

第四步:计算每个哈希表中TOKEN串出现的概率 P={(某TOKEN串的字频)/(对应哈希表的长度)};

第五步:综合考虑hashtable_good和hashtable_bad,推断当新来的邮件中出现某个TOKEN串时,该邮件作为垃圾邮件的概率。存在事件S:该邮件为垃圾邮件,t1 t2 …,tn代表TOKEN串,则P{S/ti}表示在邮件中出现TOKEN串ti时,该邮件为垃圾邮件的概率。

第六步:建立新的哈希表 hashtable_probability存储TOKEN串ti到P{S/ti}的映射,如下所示:

TOKEN串         垃圾邮件的概率

商品                P{S/t1}

易趣                P{S/t2}

法轮功              P{S/t3}

色情                P{S/t4}

重复此步骤直到得到出现某字串的邮件为垃圾邮件的概率,垃圾邮件集和非垃圾邮件集的学习过程就算结束了。根据建立的哈希表hashtable_probability可以估计一封新到的邮件为垃圾邮件的可能性,当新到一封邮件时,按照步骤生成新的TOKEN串,查询hashtable_probability得到该TOKEN串的键值。假设由该邮件共得到N个TOKEN串,t123…tn ,则hashtable_probability中对应的值为P1, P2, P3, …Pn, P{S/t1,2,3,…tn}表示在邮件同时出现多个TOKEN串t1,2,3,…tn时,该邮件为垃圾邮件的概率,由复合概率公式可得:

P{S/t123…tn}=(P1 * P2*…* Pn)/[P1 * P2*…* Pn + (1- P1 )*(1- P2)*…*(1- Pn)],当P{S/t1,2,3,…tn }超过预定阈值时,就可以判断该邮件为垃圾邮件。

4.5.2贝叶斯过滤算法举例

例如:一封含有“法轮功”字样的垃圾邮件 A和 一封含有“法律”字样的非垃圾邮件B。

根据邮件A生成hashtable_ bad,该哈希表中的记录为:

法:1次

轮:1次

功:1次

计算得在本表中:

法出现的概率为0.3

轮出现的概率为0.3

功出现的概率为0.3

根据邮件B生成hashtable_good,该哈希表中的记录为:

法:1

律:1

计算得在本表中:

法出现的概率为0.5

律出现的概率为0.5

综合考虑两个哈希表,共有四个TOKEN串: 法 轮 功 律

当邮件中出现“法”时,该邮件为垃圾邮件的概率为:

P=0.3/(0.3+0.5)=0.375

出现“轮”时:

P=0.3/(0.3+0)=1

出现“功“时:

P=0.3/(0.3+0)=1

出现“律”时

P=0/(0+0.5)=0;

由此可得第三个哈希表:hashtable_probability 其数据为:

法:0.375

轮:1

功:1

律:0

当新到一封含有“功律”的邮件时,我们可得到两个TOKEN串,功 律

查询哈希表hashtable_probability可得:

P(垃圾邮件|功)=1

P(垃圾邮件|律)=0

此时该邮件为垃圾邮件的可能性为:

P=(0*1)/[0*1+(1-0)*(1-1)]=0

由此可推出该邮件为非垃圾邮件。

4.5.3贝叶斯过滤模块划分

针对贝叶斯过滤的流程以及其所需要的功能,可以把整个过滤从功能上分为邮件预处理、贝叶斯算法实现、数据库访问、过滤主逻辑几个主要模块,系统结构如下图所示:

图4-3 贝叶斯过滤系统结构图

基于ASP的反垃圾邮件管理系统的设计[点击下载]

如需要全部源码,联系QQ:2812491287如需要全部源码,联系QQ:2812491287

评论