Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 停止通过域名访问文件_Asp.net_.net_Security_Server_File Security - Fatal编程技术网

Asp.net 停止通过域名访问文件

Asp.net 停止通过域名访问文件,asp.net,.net,security,server,file-security,Asp.net,.net,Security,Server,File Security,通过域名我的文件是可访问的,我有类似的URL(下面给出)使我的文件可访问 网址: 我已检查了对父文件夹、子文件夹的权限,只有少数人有权访问这些文件夹,但我担心其他人为什么也可以访问这些文件。请告知 此外,我使用的是ASP.NET(web表单)应用程序,因此web.config文件中是否需要任何配置来删除该漏洞,因为此url不会命中我源代码中的任何页面。谢谢。如果您不希望该文件可以公开访问,请不要将其放在公共位置 只有少数人有权访问这些文件夹 web服务器是否具有访问权限?如果是这样,那么互联网

通过域名我的文件是可访问的,我有类似的URL(下面给出)使我的文件可访问

网址:

我已检查了对父文件夹、子文件夹的权限,只有少数人有权访问这些文件夹,但我担心其他人为什么也可以访问这些文件。请告知


此外,我使用的是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:\Some\Path\To\File.doc");
context.Response.End();
您可以让单个处理程序返回使用查询字符串参数指定的任何文件。尽管要小心验证文件请求,这样用户就不能从整个文件系统下载任何文件。但当然,验证请求正是您要问的问题


通过这种方式,您可以使用web应用程序中的身份验证/授权机制在返回文件之前验证用户和请求。本质上,ASP.NET应用程序成为用户和文件之间的一种屏障。

ASP.NET与此无关,它只是web服务器提供的一个
.doc
文件。如果您担心人们可以访问它,那么为什么要从web服务器开始呢?如果您不想访问它,为什么不直接从web服务器的目录中删除它呢?