如果您不希望該文件可公開訪問,請勿將其放置在公共場所。
只有少數人擁有訪問這些文件夾
是Web服務器的東西,有這些數據?如果是這樣,那麼互聯網上的任何人都可以訪問它。因爲他們都通過網絡服務器訪問它。
而且我使用ASP.NET(網頁形式)的應用程序,那麼有沒有在web.config文件中刪除脆弱,因爲該網址不打任何網頁在我的源代碼所需的任何配置。
嗯,是的,沒有。如果您希望ASP.NET應用程序控制對該文件的訪問,那麼您希望從公開位置刪除該文件,並將其放置在應用程序可以訪問它的位置,但公衆不能。然後,您可以使用該應用程序來控制對其的訪問。
從其公共位置移除文件並將其放置在以外的地方 Web服務器的目錄結構。只是在服務器上的其他位置。然後創建一個HTTP處理程序(.ashx
),或者如果你想要的話,甚至可以創建一個頁面(.aspx
),雖然一個處理程序通常是首選的,因爲頁面會涉及不必要的開銷,並使用該處理程序/頁面通過代碼提供文件。
代碼本身可能就這麼簡單:
context.Response.Clear();
context.Response.ContentType = "application/pdf";
context.Response.AddHeader("Content-Disposition", "attachment; filename=File.doc");
context.Response.TransmitFile("C:\Some\Path\To\File.doc");
context.Response.End();
你可以有一個單一的處理器返回一個與,比如說指定的任何文件,查詢字符串參數。雖然要小心驗證文件的請求,所以用戶不能只從您的整個文件系統下載任何文件。但是,當然,驗證請求正是你所問的。
這樣,您可以在Web應用程序中使用身份驗證/授權機制在返回文件之前驗證用戶和請求。本質上,ASP.NET應用程序成爲用戶和文件之間的一種屏障。
ASP.NET實際上並沒有什麼關係,它只是一個由Web服務器提供的'.doc'文件。如果你擔心人們可以訪問它,爲什麼它在Web服務器上開始?爲什麼不把它從Web服務器的目錄中刪除,如果你不想訪問? – David