日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

通过自定义ISAPI Filter来禁止敏感文件的访问

發布時間:2025/3/20 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 通过自定义ISAPI Filter来禁止敏感文件的访问 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

//說明:本文來自互聯網

?

有不少站點可能都有這樣的情況,利用.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
希望該文章能對您有用。

轉載于:https://www.cnblogs.com/Winston/archive/2008/08/19/1271229.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的通过自定义ISAPI Filter来禁止敏感文件的访问的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。