分享
 
 
 

用ISAPIfilter使INC、ASA文件安全

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

在以前看到老外的一篇文章,现在记不起这个很不错的热情的有如我一般的年轻人了,不过邮箱里还有和他讨论的邮件。

有不少站点可能都有这样的情况,利用.inc以及.asa包含文件来存储数据库连接信息,特别是.inc的文件,想改掉有需要太多的时间和做大幅度的程序调整,比如我有个客户就是光.inc文件就有几十个,更别说ASP文件了,想改是无从下手的。于是我利用那位外国朋友的经验,做了很少的一点改动,形成一个iSAPi的过滤器,希望能使您的站点的inc以及asa文件安全一点。

我不想把标准的ISAPI的接口函数做一一介绍,比较全面的知识您可以利用VC的ISAPI工程模板来学习。在这里我着重介绍OnUrlMap以及如何用它来完成我们保护INC和其他文件安全性的过程。

isapi filter(Internet Server Application Program Interface (ISAPI) filter)是绑定在IIS系统并监控发生在客户端从WebSERVER读取文件事件的一种基于Windows的程序应用。

由于他可以控制客户端和服务器间的数据交换,我们可以用它来提高WWWSERVER的应用性能比如扩展HTTP日志功能、实现自己的加密和验证系统。

OnPreprocHeaders -- 服务器预处理客户端头文件.

OnAuthentication -- 客户端验证.

OnUrlMap -- 服务器映射逻辑URL到物理路径.

OnSendRawData -- 服务器发送未经处理的数据到客户端(之前).

OnReadRawData -- 客户断发送未经处理的数据到服务器(之后,但在服务器处理之前).

OnLog -- 写日志到服务器文件.

OnEndOfNetSession -- 会话结束.

下面是OnUrlMap的用法:

DWORD CJsisapiFilter::OnUrlMap(CHttpFilterContext* pCtxt,

PHTTP_FILTER_URL_MAP pMapInfo)

{

// TODO: React to this notification accordingly and

// return the appropriate status code

DWORD lenURL = strlen(pMapInfo->pszURL);

DWORD dwReferer = 250;

const char * szURL = strlwr((char *)pMapInfo->pszURL);

const char * szExtension = &szURL[lenURL - 3];

const char * inExtension = &szURL[lenURL - 4];

char szReferer[250];

//到服务器的数据已经编码过了

if ( strcmp(szExtension, ".js") == 0 || strcmp(inExtension,".inc") == 0 || strcmp(inExtension,".asa")

== 0){

pCtxt->GetServerVariable("HTTP_REFERER", szReferer, &dwReferer);

if ( szReferer[0] != ’h’ ) {

char szRedirect[2];

char szContent[300];

DWORD dwRedirect = 2;

DWORD dwContent;

sprintf(szRedirect,"");

sprintf(szContent, "\r\n\r\n<html>\r\n<head><title>安全文件

</title></head>\r\n<body>\r\n<b><center><font size=+2>该文件包含非公开信息,您没有读取该文件的权限。

</font></b><br><br><br><hr><a

href=mailto:bingb@emount.com.cn>mailto:bingb@emount.com.cn</a><br></center>\r\n</body>\r\n</html>\r\n");

dwContent = strlen(szContent);

pCtxt->ServerSupportFunction(SF_REQ_SEND_RESPONSE_HEADER,szRedirect,&dwRedirect,NULL);

pCtxt->WriteClient (szContent, &dwContent);

return SF_STATUS_REQ_FINISHED;

}

}

return SF_STATUS_REQ_NEXT_NOTIFICATION;

}

编译后将编译完成的DLL文件拷贝到winnt\system32\inetsrv\目录下,然后在站点的属性里面的ISAPI过滤器添加一个过滤器,映射DLL到该文件即可。

重新启动W3SVC服务,然后访问:http://localhost/xxx.inc可以看到返回信息。

有任何问题可以联系:bingb@emout.com.cn 希望该文章能对您有用。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有