ASP.NET中弹出窗口常见的封杀方式浅谈

开发 后端
ASP.NET中弹出窗口常见的封杀方式有什么呢?在这篇文章中我们将向你介绍3中ASP.NET中弹出窗口常见的封杀方式。

ASP.NET中弹出窗口常见的封杀方式有哪些呢?让我们开始介绍。

ASP.NET中弹出窗口封杀之1、基于窗口标题的封杀方式

这种封杀方式的原理是定时检查所有的IE窗口标题,然后于已经有的列表(由程序维护的一个数组列表)来比较,如果有相同的,我们就关闭这个窗口。显然,这种方式有着诸多缺陷,它封杀了所有的弹出的窗口,管得太死,在程序真正使用的很少。不过,依据它进行的变形方式倒使用得相当的普遍。那就是,基于窗口标题名称的智能过滤技术,它根据弹出窗口的标题是否含有关于广告的关键字进行封杀,这为提高过滤效果作出了很好的探索。

ASP.NET中弹出窗口封杀之2、基于窗口类和位置的封杀方式

经过分析发现正常浏览窗口的类名是IEFRAME和CabinetWClass,而广告窗口的类名是CabinetWClass。进一步分析发现:广告窗口的WorkerA类和Shell DocObject View类的rect.top的值是相同的,正常IE窗口的WorkerA类和Shell DocObject View类的rect.top的值是不相同的。根据以上两点就可以书写广告杀手程序了。 事实上,我对此程序的通用性持怀疑态度。因为笔者用Spy++分析发现,在Windows2000( 笔者使用的操作系统)中,IE窗口的类都为IEFrame。同时,由于Win2000是一个基于Unicode代码的操作系统,所以没有WorkerA类,而以WorkerW类取而代之。同时,也不存在rect.top不相同的情况,由于笔者没有WindowsXP操作系统,所以不能针对WindowsXP作进一步的试验。

ASP.NET中弹出窗口封杀之3、基于IE COM组件的封杀方式

以上两种方式都是把IE窗口当作一个普通的Windows窗口对待,进行判断的。事实上,IE是一个典型的基于COM组件的浏览器,所有的基于IE内核的浏览器都是包装shdocvw.dll文件,然后书写相应的BHO代码。只有这样才能做到真正的控制IE浏览器,而不是方法一、二这样的隔靴搔痒。

还有一种基于IE内核的弹出窗口封杀方法。它可以在弹出窗口打开之前加以拦截。其原理是:每当IE打开一个新的窗口时候都会触发NewWindow事件,执行OnNewWindow2([out] IDispatch*, [out] BOOL *bCancel)方法。重载此方法,判断打开新窗口事件是否发生在浏览页面已经下载完毕之后。如果是,说明是正常的弹出窗口,反之加以拦截。

由于Gosurf这样的浏览器本身就重载了Shocvm.dll组件,所以使用第三种方法就自然成了顺理成章的事。然而在使用过程中有时也会发现,广告过滤不很***,但原理基本如此。

ASP.NET中弹出窗口常见的封杀方式就向你介绍到这里,希望这样的介绍对你有所帮助。

【编辑推荐】

  1. ASP.NET虚拟主机在创建数据源时的隐患浅析
  2. ASP.NET调用存储过程的含义及好处
  3. ASP.NET应用程序资源访问安全模型浅析
  4. ASP.NET虚拟主机在显示文件时的隐患浅析
  5. ASP.NET主机资源控制经验
责任编辑:仲衡 来源: 博客堂
相关推荐

2009-07-27 16:43:31

2009-07-24 13:39:03

ASP.NET弹出窗口

2009-07-22 16:11:43

ASP.NET AJA

2009-07-20 15:30:11

ASP.NET应用

2009-07-24 10:52:42

ASP.NET ISA

2009-07-27 13:01:28

TreeViewASP.NET

2009-07-28 18:00:11

ASP.NET程序

2009-07-21 14:16:02

ASP.NET管道优化

2009-07-23 15:24:37

ASP.NET Ima

2011-08-23 10:58:59

2009-07-27 16:19:59

ASP.NET报表控件

2009-08-05 15:29:33

ASP.NET For

2009-07-28 17:49:30

ASP.NET定期回收

2009-08-10 10:19:47

ASP.NET组件设计

2009-07-28 16:03:23

ASP.NET状态服务

2009-07-22 13:24:24

ASP.NET MVC

2009-07-23 15:44:39

ASP.NET MVC

2009-07-20 17:12:17

ASP.NET访问数据

2009-07-21 09:53:55

ASP.NET AJAWCF服务

2011-01-26 11:09:07

点赞
收藏

51CTO技术栈公众号