簡體   English   中英

拒絕IIS中的文件擴展名

[英]Denying file extensions in IIS

在IIS中,我注意到我可以拒絕訪問服務器上的任何文件擴展名。 例如,我拒絕訪問.jpg圖像。 但是,然后瀏覽器將無法在我的網站上顯示.jpg圖像。

我想知道,IIS是否允許我們拒絕訪問直接通過文件擴展名(或文件名)訪問的文件擴展名(通過在地址欄中鍵入完整的url),同時仍按文檔要求將其提供給瀏覽器?

真的無法阻止這樣做; 確定的人可以下載網頁可以下載的任何內容。 但是,通過檢查請求中的HTTP引薦來源網址,您可以使技術水平較低的人稍有困難。 如果這是您其中一個網頁的URL,則可以允許該請求。 否則,您可以拒絕它。 此技術通常用於防止深度鏈接。

這是使用.NET HTTP模塊的示例(未經試用):

public class ImageDenyingModule : IHttpModule
{
    public void Init(HttpApplication app)
    {
        app.BeginRequest += (s, e) => {
            var request = app.Context.Request;
            if (RequiresPageReferrer(request.Url) && !IsValidReferer(request.UrlReferrer)) {
                app.Context.Response.StatusCode = 404;
                app.Context.Response.End(); // Or something...
            }
        };
    }

    private bool RequiresPageReferrer(string url) {
    }

    private bool IsValidReferrer(string referrer) {
    }
}

您可以使用自定義的http處理程序來執行此操作。

http://support.microsoft.com/kb/308001

如果為jpg文件創建自定義處理程序,則可以檢查請求的引薦來源並提供圖片或取消請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM