通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 MY小屋
联系我们
设为首页
加入收藏

 

QQ,ASP,PHP,JSP,XML,SQL,.Net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | Q Q 专栏 | 建站经验 | 在线工具 | 站长Club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务
当前位置:首页>>编程开发>>VC编程>>正文 新版上线![旧版]
注:打开慢时请稍等

创建ISAPI过滤器

http://www.iyit.net  日期:2006-5-23 12:29:37  来源:网络转载   点击:

编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:在Web页中使用ISAPI扩展
下一篇:使用ISAPI过滤器划分Web站点的密级
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

参加讨论】创建ISAPI过滤器:    前面两节介绍了如何利用ISAPI扩展更好地构造Web站点。本节将介绍构建自己的 ISAPI过滤器的过程。创建ISAPI过滤器过程与创建扩展的过程的起始部分是一样的。下面的步骤将帮助你创建一个程序框架。
    注 记住ISAPI过滤器与扩展不同,过滤器在特定事件发生时自动做出反应,而扩展更像是一个应用程序那样被调用。
    1. 使用File(文件)|New(新建)命令显示 New 对话框。选中 ISAPI ExtensionWizard(ISAPI扩展向导)(即使要创建的是过滤器,也要用ISAPI ExtensionWizard来创建)。
    2. 输入想创建的过滤器的名称。对这个ISA示例我们使用了NoLog,但你可以任意选用其它名称。
    3. 单击OK,即出现ISAPI Extension Wizard(ISAPI扩展向导)棗Step 1 of 2对话框。在这里为你的ISA选择各种特性。注意对话框有三个主要区域。选中第一个复选框表示创建过滤器,选中第二个复选框表示创建扩展。第三部分定义如何将MFC链接到你的应用程序中。
    4. 选中Filter(过滤器)选项而不选中Extension (扩展)选项(注意加入过滤器也就增加了一些其它步骤)。在Filter Description(过滤器描述)域中,提供一个描述你的ISA 功能的短小扼要的说明。该描述将作为字符串来显示,需要时可以在DLL中使用它。当别人为了使用ISA打开它时,该描述不会出现在Properties(属性)对话框中,所以还要给DLL 的版本信息中加入一些文本。

    5. 在Filter Description(过滤器描述)域中输入Classify some log entries for securityreasons(为了安全原因而对日志项进行密级划分)。
    6. 单击Next,就能看到如下图所示的ISAPI Extension Wizard(ISAPI 扩展向导)棗Step 2 of 2对话框。

    这是选择过滤器能够提供的事件以及监测类型的属性页。有三个方面的情况需要考虑。这些选项的详细介绍请参见“高级技巧”中的“选择过滤器选项”部分。
    7. 选中Server log Writes(服务器日志写入)复选框,而不选End of Connection(连接结束)复选框。由于我们创建了一个简单的过滤器来保持某些日志项的密级划分,所以每当用户申请服务器的特殊类型服务时就激活过滤器。
    8. 单击Finish,就会看到如下图所示的New Project Information (新建工程信息)对话框。一定要二次核对过滤器的这些设置项,因为New Project Information页提供了对过滤器将要看到的事件进行的详细分类。

    9. 单击OK,ISAPI Extension Wizard(ISAPI扩展向导)就会创建所需的程序框架。
    这个示例的代码部分简单明了。过滤程序很容易弄得复杂化,从而导致调试很困难。大多数情况下,你应该让过滤器程序尽可能简短。在对出错的过滤器查错时,如果程序是模块化的,将会提供极大的帮助。程序列表13.5列出了为使OnLog() 函数工作而需要添加的代码。

    可以看出,为了某个特定目标,我们对日志项进行简单的监测,这个特定目标可以是除另一个Web页之外的任意数量的事情。一旦找到所需的日志项,我们将按照分类设置修改两个成员:pszTarget和pszParameters。显然这种思路已大大简化,不过都有实际的用途。你可能不想让某个特定日志项被别人偷看,这里介绍的方法就可以实现你的目的。记住黑客们经常利用它们在服务器上找到的目志文件,来盗窃公司的内部资源。不仅如此,对某些日志项进行密级划分还有其它原因。在某些情况下,你可能想完全删除某些日志项只是因为不想再监测它们。好了,我们已经详细说明了如何小心使用这种过滤器,不过这将是一个好的开端。
    现在可以编译新的ISAPI过滤器了,但是,在你将它移到服务器上的Controls或Scripts目录之后,仍要做一件事。与扩展不同,ISA过滤器在你启动服务器时即被装载。也就是说,如果你使用的是老版本的IIS,那么,就停止目标服务器,生成一个注册表项,然后再次启动该服务器。过滤器将作为启动进程的一部分被装载。
    WWW 服务在如下的注册值中保存它的过滤器项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W3SVC\Parameters\Filter DLLs。你可能已经在该位置找到一个或多个值。这里要做的是加上一个逗号,然后输入自己新的ISA过滤器的位置。一定要在学习下节之前做这一步,否则过滤器就不会被装载。实际上,如果过滤器工作出了问题,这里是你首先应该检查的地方。
    对IIS 4.0以上版本的用户来说,不必为装载ISAPI过滤器而手工编辑注册表了。此时所要完成的工作就是打开Microsoft Management Console(管理控制台),用右键单击需添加过滤器的Web站点,从关联菜单中选择Properties(属性),再选中ISAPZ Filter(过滤器)项,就会看到如下所示的对话框。

    单击Add(添加)按钮,就会看到 Filter Properties (过滤器属性)对话框,在Filter Name(过滤器名)域中键入名称,使用Browse(浏览)按钮找到Nolog.DLL文件(或想添加到Web站点的随便什么别的ISAPI过滤器)。选定文件后,其名称将出现于Executable(可执行)域。单击OK关闭Filter Properties(过滤器属性)对话框;再次单击OK关闭Default Web Site Properties(缺省Web站点属性)对话框。IIS将为你自动加载该过滤器。
    选择过滤器选项
    ISAPI Extension Wizard(ISAPI扩展向导)棗Step 2 of 2页对于过滤器设计者是非常重要的,这是因为它包含了需要为过滤器设置的监测选项。这一页上的选项分三部分。第一部分确定过滤器优先级,缺省设置为Low (低),这在大多数情况下运行良好,一般后台任务使用这一层次的优先级。安全过滤器需要设置为medium(中)优先级,毕竟你不想让过滤器在事件之后再作出反应,在事件发生期间过滤器就作出反应就好得多了。最后,High(高)优先级设置应为关键层次的过滤器保留着,例如,向每个人发出一条消息,声明由于电源故障,服务器即将关机,这时就应使用High优先级了。
    ISAPI Extension Wizard(ISAPI扩展向导)-Step 2 of 2对话框的第二部分包含着两个选项。如果用户拥有安全的连接就应复选第一项,例如,如果计划对注册用户提供额外服务,而不让匿名用户得到这些额外服务,那么就应复选第一项了。第二项是不安全端口会话,允许你在用户不拥有对服务器的安全连接时监测事件。如果你有一个Internet一般Web站点,大多数用户都是这样去访问你的站点的。
    第三部分是过滤器追踪的事件列表,每当这里指定的事件发生,就调用过滤器,但是,过滤器被调用时有两件事要影响它。如果过滤器的优先级为Low(低),那么High(高)或medium(中)优先级的过滤器将先对事件作出反应。另外,你的过滤器不得不设置成用户当前安全级来监测事件,换言之,如果你把过滤器设置成监测非安全级行动而用户处于安全模式,则过滤器就不会被调用。
 相关文章
最新更新 热点排行 推荐新闻
用VC++自制王码五笔输入法安装包 
在线资源指导
实用组件介绍
如何以最佳方式购买组件
ActiveX和OCX组件资源
用VC++自制王码五笔输入法安装包 
在线资源指导
实用组件介绍
如何以最佳方式购买组件
ActiveX和OCX组件资源
建立安装程序
收 集 文 件
理解各种打包类型
打包应用程序
向应用程序增加基于HTML的帮助
VC++实现对远程计算机屏幕的监视
用VC++6.0的Sockets API实现一个聊天室
多线程技术在VC++串口通信程序中的应用
用VC++制作一个简单的局域网消息发送工
用VC 6.0实现串行通信的三种方法
优秀公益广告作品欣赏(8)
java数据类型转换
Windows XP专业版IIS连接数的更改
新开放QQ免费挂级网站
优秀公益广告作品欣赏(7)
免费在QQ上看在线电影电视听音乐
WEB服务器配置全攻略(三)
QQ珊瑚虫外挂4.0版本发布!
免费把QQ炫铃设为本机QQ的系统提示音
Office2007简体中文版浮出水面 美图抢
微软将在华推分期付款,充值卡PC 可低价
 AMD处理器AM2测试 风扇竟运行7分钟
exeplorer.exe错误的问题的总结、解决
ASP.NET 2.0 中的异步页功能应用
硬盘坏道修复及数据恢复宝典
免费登录搜索引擎入口大全
搜索引擎注册九大秘法
小心摄像头成为黑客偷窥你的眼睛
内存混插常见问题和解决方法
Office2007简体中文版浮出水面 美图抢
 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyrights © 2004-2006 iYiT.Net All Rights Reserved.
网站合作、广告联系QQ:147007642、466949678
易特网络技术 点击这里给我发消息