- 热门文章:
- · IIS HTTP500内部错误解决办法(2)
- · IIS HTTP500内部错误解决办法(3)
- · ASP实用技巧:强制刷新和判断文件地址
- · ASP木马Webshell安全解决办案
- · 由神秘到简单 教你在网页中添加微软地图(1)
- · 由神秘到简单 教你在网页中添加微软地图(2)
- · 在Apache上调试ASP.NET 1.1/2.0代码
- · ASP.NET入门随想之多态、接口与委托(1)
- · ASP.NET入门随想之多态、接口与委托(2)
- · ASP.NET 2.0运行时简要分析(1)
- · ASP.NET 2.0运行时简要分析(2)
- · 由神秘到简单 教你在网页中添加微软地图(3)
上一篇:IIS服务器排错指南及错误代码大全(3) >>
用ISAPIfilter使INC、ASA文件安全
有不少站点可能都有这样的情况,利用.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 希望该文章能对您有用。
下一篇:IIS HTTP500内部错误解决办法(2) >>
相关文章:
- · 由神秘到简单 教你在网页中添加微软地图(4)
- · 由神秘到简单 教你在网页中添加微软地图(5)
- · 由神秘到简单 教你在网页中添加微软地图(6)
- · 由神秘到简单 教你在网页中添加微软地图(7)
- · ASP程序中提供在线文章翻译功能
- · ASP编程经典例子(1)
- · ASP编程经典例子(2)
- · 在ASP应用程序中限制重复提交同一表单
- · 在ASP应用程序中加入智能搜索
- · ASP连接11种数据库语法总结(1)
- · ASP连接11种数据库语法总结(4)
- · ASP连接11种数据库语法总结(5)
- · 无限级分类
- · 读取数据库中数据到数组的类
- · 网址和邮件地址的转换函数
- · ASP编码优化(1)
- · ASP编码优化(2)
- · 在ASP网站设计中表单验证
- · 动网论坛代码分析
- · asp中对ip进行过滤限制函数
- · 不用Golobal和session实现在线人数统计
- · 简单购物车教程
- · ASP生成柱型体,折线图,饼图源代码(1)
- · ASP生成柱型体,折线图,饼图源代码(2)
- · 一些Asp技巧和实用解决方法
- · 一些Asp技巧和实用解决方法
- · IP地址分段计算
- · 身份证验证代码函数
- · WEB打印设置解决方案一
- · WEB打印设置解决方案二
- · ASP.NET2.0应用中定制安全凭证之实践篇(1)
- · ASP.NET2.0应用中定制安全凭证之实践篇(2)
- · ASP.NET2.0应用中定制安全凭证之实践篇(3)
- · ASP.NET Web Matrix开发工具简介(1)
- · 在Apache上调试ASP.NET 1.1/2.0代码(1)
- · 在Apache上调试ASP.NET 1.1/2.0代码(2)
- · 利用WWF进行ASP.NET程序开发(1)
- · 利用WWF进行ASP.NET程序开发(2)
