通过域名可以访问我的文件,我有类似的URL(下面给出),这使我的文件可以访问。
网址:
https://www.DomainName/ParentFolder/SubFolder/File.doc
我已经检查了ParentFolder、SubFolders的权限,只有少数人可以访问这些文件夹,但我担心为什么其他人也可以访问这些文件。请告知。
此外,我使用的是ASP.NET(web表单)应用程序,所以web.config文件中是否需要任何配置来删除该漏洞,因为该url在我的源代码中没有命中任何页面。谢谢
如果你不想让文件公开访问,就不要把它放在公共位置。
只有少数人可以访问这些文件夹
web服务器是可以访问它的东西吗?如果是这样,那么互联网上的任何人都可以访问它。因为他们都是通过网络服务器访问的。
此外,我使用的是ASP.NET(web表单)应用程序,所以web.config文件中是否需要任何配置来删除该漏洞,因为该url在我的源代码中没有命中任何页面。
好吧,是和否。如果你想让你的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:SomePathToFile.doc");
context.Response.End();
您可以让一个处理程序返回任何由查询字符串参数指定的文件。尽管要小心验证文件请求,这样用户就不能从整个文件系统下载任何文件。但当然,验证请求正是你所要问的问题。
通过这种方式,您可以在返回文件之前使用web应用程序中的身份验证/授权机制来验证用户和请求。从本质上讲,ASP.NET应用程序成为用户和文件之间的一种屏障。