拒绝直接访问文件夹(仅允许通过应用程序)

Kei*_*ers 3 asp.net security file-access

我需要阻止某人直接访问pdf,而只是允许他们通过应用程序本身.如何才能做到这一点?

use*_*006 10

将其添加到顶级Web.config以阻止名为Reports的文件夹(您的文件夹名称会在那里).这将允许您的应用程序访问Reports/file.pdf,但是对yoursite.com/Reports/file.pdf的外部请求将被阻止.

<configuration>
    <system.webServer>   
         <security>
          <requestFiltering>
            <hiddenSegments>
              <add segment="Reports" />
            </hiddenSegments>
          </requestFiltering>
        </security>
    </system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)


Amr*_*rhy 3

\n

有两种解决方案可以做到这一点:

\n

1- 您可以将 \xe2\x80\x9cUsersUploads\xe2\x80\x9d 文件夹放在网站\n目录之外,因此如果您的网站存在于 \xe2\x80\x9cc:\\website\\example.com\xe2\x80 \x9d 你可以把 \xe2\x80\x9cUsersUploads\xe2\x80\x9d 放在那里 \xe2\x80\x9cc:\\UsersUploads\xe2\x80\x9d,就像 IIS \n无法控制这个文件夹及其文件,并且您的网站代码\n仍然可以像正常物理路径一样访问该目录。

\n

2- 停止 IIS 提供此文件夹服务:

\n

默认情况下,IIS 不\xe2\x80\x99 服务某些网站文件夹和文件,例如\nApp_Data、App_Code、bin、App_GlobalResourses、App_LocalResources、\nWeb.config、\xe2\x80\xa6。

\n
\n

  • 3 - 在您的 Web 应用程序下创建文件夹并取消选中从 IIS 管理器中的文件夹读取。 (2认同)
  • 4- 如果您使用的是 IIS 7,请在您的 Web 应用程序下创建文件夹,并向 web.config 添加请求过滤器以阻止访问该文件夹。这就是 IIS 对其文件夹所做的操作,例如 App_Data (2认同)