| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7923 人关注过本帖
标题:[原创]ISAPI Filter网站资源防下载系统-AntiDownload.DLL
只看楼主 加入收藏
redice
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:902
专家分:0
注 册:2006-12-11
结帖率:72.73%
收藏
 问题点数:0 回复次数:35 
[原创]ISAPI Filter网站资源防下载系统-AntiDownload.DLL

*/ --------------------------------------------------------------------------------------
*/ 出自: 编程中国 http://www.bc-cn.net
*/ 作者: redice E-mail:redice@see.xidian.edu.cn QQ:181697466
*/ 时间: 2007-10-19 编程论坛首发
*/ 声明: 尊重作者劳动,转载请保留本段文字
*/ --------------------------------------------------------------------------------------

最近由于项目需要,学习了一下ISAPI Filter编程,写出了这个系统。现向编程论坛的朋友们开源。


RedIce网站资源防下载系统使用说明

该网站资源防下载系统可以保护网站中所有的mdb,asa文件,防止被
下载。并且,可以保护特定目录中的特定类型文件,防止它们被非法
下载。

使用方法:
1 将配置文件FileProtector.ini文件复制到C盘根目录。
2 在IIS中增加"ISAPI筛选器"
管理->Internet 信息服务->网站->属性->ISAPI筛选器标签
点击“添加”,输入筛选器名称(例如:AntiDownload)。选
择DLL文件的路径。
3 修改FileProtector.ini文件中的目录相对路径为你要保护的目
录的相对路径。

这样就OK了!

注意:1 AntiDownload.dll文件不需要使用Regsvr32命令进行注册。
2 FileProtector.ini文件中仅第一行的数据有效,只能写
一个路径。

发布程序

w2F0sqJE.rar (11.96 KB) [原创]ISAPI Filter网站资源防下载系统-AntiDownload.DLL




aPoeCOOz.rar (5.11 KB) [原创]ISAPI Filter网站资源防下载系统-AntiDownload.DLL

搜索更多相关主题的帖子: Filter AntiDownload ISAPI DLL 资源 
2007-10-19 21:35
hmhz
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:30
帖 子:1890
专家分:503
注 册:2006-12-17
收藏
得分:0 
不错,谢谢分享

[编程论坛] ASP超级群:49158383  敲门暗号:ASP编程
龍艺博客 http://www.
2007-10-20 01:41
redice
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:902
专家分:0
注 册:2006-12-11
收藏
得分:0 
嘿嘿
看来关心的人 不多呀

鲲鹏数据 - 专业Web数据采集服务提供者
http://www.
2007-10-20 10:11
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 

顶一下,虽然还看不懂,先下载来用用看

我有个问题,是不是我把网站的整个目录设置进去,那所有的文件(包括文件夹里面的)都不能被下载了?


从BFS(Breadth First Study)到DFS(Depth First Study)
2007-10-20 10:19
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
楼主能不能把你参考的资料共享一下,不然这个程序看不懂~~

从BFS(Breadth First Study)到DFS(Depth First Study)
2007-10-20 10:21
redice
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:902
专家分:0
注 册:2006-12-11
收藏
得分:0 
回复:(永夜的极光)顶一下,虽然还看不懂,先下载来...
对呀 这样你是不能通过类似http://127.0.0.1/upload/ceshi.doc这样的路径下载到文件了

因此在我们的系统中,我们需要想办法让注册用户能正常下载
办法就是:采用Stream读取文件并发送给客户,缺点:占CPU


鲲鹏数据 - 专业Web数据采集服务提供者
http://www.
2007-10-20 11:02
redice
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:902
专家分:0
注 册:2006-12-11
收藏
得分:0 
回复:(永夜的极光)楼主能不能把你参考的资料共享一...
DWORD CAntiDownloadFilter::OnUrlMap(CHttpFilterContext* pCtxt,
PHTTP_FILTER_URL_MAP pMapInfo)
{
// TODO: React to this notification accordingly and
//读取配置文件
char path[256];
ifstream ifs("C:\\fileprotector.ini");
memset(path,0,256);
ifs.getline(path,256);
ifs.close();
char url[256];
memset(url,0,256);
strcpy(url,pMapInfo->pszURL);
if(strstr(strlwr(url),".mdb")||strstr(strlwr(url),".asa")){
DWORD StrLength;
CHAR Str[256];
sprintf(Str,"<p align=center><font color=red>注意:你没有访问该资源的权限!</font>");
StrLength=strlen(Str);
pCtxt->WriteClient(Str,&StrLength);
return SF_STATUS_REQ_FINISHED;
}
if(strstr(strlwr(url),strlwr(path))&&(strstr(strlwr(url),".pdf")||strstr(strlwr(url),".doc"))){
DWORD StrLength;
CHAR Str[256];
sprintf(Str,"<p align=center><font color=red>注意:你没有访问该资源的权限,请先登陆!</font>");
StrLength=strlen(Str);
pCtxt->WriteClient(Str,&StrLength);
return SF_STATUS_REQ_FINISHED;
}

// return the appropriate status code
return SF_STATUS_REQ_NEXT_NOTIFICATION;
}
这是核心代码,看看这些就行了 其它的都是VC++ Isapi向导生成的

[此贴子已经被作者于2007-10-20 11:04:01编辑过]


鲲鹏数据 - 专业Web数据采集服务提供者
http://www.
2007-10-20 11:03
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
哦,你继承了CHttpFilter,然后重载了OnUrlMap,通过url判断

如果不是在浏览器地址栏输入,而是通过下载工具,比如迅雷,能防住吗?

从BFS(Breadth First Study)到DFS(Depth First Study)
2007-10-20 13:07
redice
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:902
专家分:0
注 册:2006-12-11
收藏
得分:0 
回复:(永夜的极光)哦,你继承了CHttpFilter,然后重...

ISAPI Filter劫持了客户与服务器的会话。不管用浏览器还是下载工具,都要使用HTTP协议与服务器进行报文交互。

除非你拿着硬盘到服务器上拷贝,否则你是没有办法下载到那些受保护的文件的。


鲲鹏数据 - 专业Web数据采集服务提供者
http://www.
2007-10-20 19:55
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
不错楼主的代码值得借鉴,从底层截获HTTP数据这个方法不错。
2007-10-20 20:29
快速回复:[原创]ISAPI Filter网站资源防下载系统-AntiDownload.DLL
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018889 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved