基于Privoxy的广告过滤软件的设计与实现
发布时间:2017-08-03 03:04
本文关键词:基于Privoxy的广告过滤软件的设计与实现
【摘要】:近年来,随着互联网的普及和上网人数的增加,在线广告业务快速发展,由于提供了更加丰富的表现手段,在交互性、及时性、成本等方面,互联网广告明显优于传统的平面和媒体广告,同时,互联网广告可以通过追踪研究用户的上网行为和浏览习惯实现精准营销,因此互联网广告吸引了越来越多的广告主。网站为了提升广‘告的宣传效果,加大了广告的数量和展示面积,影响了用户对于有效信息的获取。加入广告联盟的网站由于不直接接触广告主,缺乏有效监管,受利益驱动容易采用自动弹出、强制播放、强制点击等技术手段伪造数据,严重影响用户的正常使用,浪费了带宽和时间,同时也骗取了广告主的广告费。部分恶意广告被用来传播恶意软件或者虚假信息,可能导致用户利益受损。此外,一些用户关注自身的隐私数据,反感个人信息被运用于精准营销。还有一些家长对于网页出现的游戏和低俗的广告内容表示担心。本文基于开源的Privoxy项目,利用VC++开发出一款软件产品,可以对指定广告内容进行过滤,降低或者消除广告对于用户的负面影响。首先,对市场上现有的广告过滤产品进行试用,提取了主要的功能需求。通过对于相关论坛的浏览和对于搜索引擎的利用,收集了这些产品各自的优点和不足,在此基础上整理出了需求列表。之后通过抓包、逆向、分析源码的方法,研究了同类功能的实现原理和技术模型。通过对国内外文献的查找,对一些开源项目的研究和分析,最终确定了基于Privoxy技术的URL过滤模型。依据这个模型,设计并编写出一款广告过滤产品。相对于市场上现有的其他产品,该产品提供了更加丰富的拦截能力,实现方便快捷的自定义拦截;提前阻止广告资源下载,节省了流量;有能力拦截视频网站的前置广告。通过了常见网站和常见广告联盟的广告拦截测试。
【关键词】:互联网广告 广告过滤 URL过滤 隐私保护
【学位授予单位】:天津大学
【学位级别】:硕士
【学位授予年份】:2014
【分类号】:TP311.52
【目录】:
- 中文摘要4-5
- ABSTRACT5-11
- 第一章 绪论11-20
- 1.1 课题背景11-18
- 1.2 课题任务18
- 1.2.1 课题内容18
- 1.2.2 本人承担任务18
- 1.3 论文结构18-20
- 第二章 相关技术20-27
- 2.1 Privoxy20-23
- 2.1.1 全局内容过滤20
- 2.1.2 兼容性20
- 2.1.3 功能列表20-21
- 2.1.4 过滤规则21-22
- 2.1.5 工作流程22-23
- 2.2 DLL注入23-26
- 2.2.1 修改注册表注入DLL23-24
- 2.2.2 创建远程线程注入DLL24-25
- 2.2.3 利用消息钩子注入DLL25-26
- 2.3 MinHook API钩子库26-27
- 第三章 需求分析27-38
- 3.1 同类软件功能分析27-30
- 3.1.1 Adblock Plus功能分析27-29
- 3.1.2 ADSafe净网大师功能分析29-30
- 3.1.3 ADM阿呆喵功能分析30
- 3.2 总体需求30-31
- 3.3 拦截网页广告31-33
- 3.3.1 拦截广告内容请求32
- 3.3.2 隐藏广告元素32
- 3.3.3 占位符32-33
- 3.3.4 自定义拦截元素33
- 3.3.5 自定义浏览器列表33
- 3.4 拦截客户端弹窗广告33-35
- 3.4.1 关闭客户端弹窗34
- 3.4.2 隐藏客户端弹窗34
- 3.4.3 自定义弹窗规则34-35
- 3.4.4 拦截提示35
- 3.5 禁止跟踪35
- 3.6 禁止恶意网址35
- 3.7 黑名单35
- 3.8 白名单35-36
- 3.9 规则分类订阅36
- 3.10 拦截计数36
- 3.11 性能需求36-37
- 3.12 支持代理37
- 3.13 自动更新37
- 3.14 安全性需求37
- 3.15 界面需求37-38
- 3.15.1 网页右键菜单添加过滤规则37
- 3.15.2 托盘图标37-38
- 第四章 概要设计38-47
- 4.1 系统整体结构38-42
- 4.1.1 安装卸载模块38-39
- 4.1.2 升级模块39-40
- 4.1.3 托盘模块40
- 4.1.4 拦截模块40
- 4.1.5 规则解析模块40-41
- 4.1.6 内容过滤模块41
- 4.1.7 界面皮肤模块41
- 4.1.8 设置模块41-42
- 4.1.9 规则订阅模块42
- 4.2 广告过滤逻辑结构42-44
- 4.2.1 Socket通讯流程42-43
- 4.2.2 连接重定向43-44
- 4.2.3 DLL注入44
- 4.3 数据结构44-47
- 4.3.1 配置文件45
- 4.3.2 Filter规则文件45
- 4.3.3 Action规则文件45-47
- 第五章 详细设计47-54
- 5.1 安装模块设计47
- 5.2 卸载模块设计47-48
- 5.3 升级模块设计48-49
- 5.4 托盘模块设计49-50
- 5.5 拦截模块设计50
- 5.6 规则解析模块设计50-51
- 5.6.1 配置解析51
- 5.6.2 filter规则解析51
- 5.6.3 action规则解析51
- 5.7 内容过滤模块设计51-53
- 5.7.1 绑定IP和监听端口52
- 5.7.2 接受连接请求52
- 5.7.3 接收客户端请求数据52
- 5.7.4 解析过滤客户端请求数据52
- 5.7.5 转发数据52-53
- 5.7.6 接收过滤服务器端返回数据53
- 5.7.7 内容过滤53
- 5.8 设置模块设计53-54
- 第六章 编码及测试54-70
- 6.1 关键代码实现54-56
- 6.1.1 拦截模块实现54-56
- 6.1.2 DLL注入代码实现56
- 6.2 测试环境56-58
- 6.2.1 操作系统57
- 6.2.2 浏览器57
- 6.2.3 网络环境57
- 6.2.4 测试网站样本57-58
- 6.2.5 测试软件样本58
- 6.3 测试方法58-59
- 6.4 测试用例59-68
- 6.4.1 拦截网页广告测试用例59
- 6.4.2 拦截视频广告测试用例59-60
- 6.4.3 拦截弹窗广告测试用例60
- 6.4.4 占位符测试用例60-61
- 6.4.5 自定义拦截元素测试用例61
- 6.4.6 自定义浏览器列表测试用例61-62
- 6.4.7 自定义弹窗规则测试用例62
- 6.4.8 网页广告拦截提示测试用例62-63
- 6.4.9 弹窗广告拦截提示测试用例63
- 6.4.10 禁止跟踪测试用例63-64
- 6.4.11 禁止恶意网址测试用例64
- 6.4.12 白名单测试用例64-65
- 6.4.13 规则订阅测试用例65
- 6.4.14 拦截计数测试用例65-66
- 6.4.15 代理服务器测试用例66
- 6.4.16 自动更新测试用例66-67
- 6.4.17 性能测试用例67
- 6.4.18 其他协议测试用例67
- 6.4.19 64位测试用例67-68
- 6.5 测试结果及分析68-70
- 第七章 结语70-71
- 参考文献71-75
- 发表论文和参加科研情况说明75-76
- 致谢76
【相似文献】
中国硕士学位论文全文数据库 前1条
1 郝晓军;基于Privoxy的广告过滤软件的设计与实现[D];天津大学;2014年
,本文编号:612331
本文链接:https://www.wllwen.com/kejilunwen/sousuoyinqinglunwen/612331.html