0

我的站点中有一个文件夹,其中包含我不希望用户通过浏览器浏览的文件,因此我将其放入我的 web.config

<location path="documents">
    <system.web>
      <authorization>
        <deny users="*"/>
      </authorization>
    </system.web>
    <system.webServer>
      <directoryBrowse enabled="false" />
    </system.webServer>
  </location>

问题是在我网站的某些页面上,我有指向这些文档的链接,我希望用户能够在点击这些文档时看到它们。问题是目前当他们点击这些链接时,他们没有得到文件。我确实理解,这是一种矛盾的状态。唯一对我有利的是,当用户单击链接时,他将登录。有什么方法可以解决这个问题吗?

4

1 回答 1

2

我会这样做的方法是使用一个页面作为参数接收您尝试获取的文件的一些 ID(如果它本身不是安全漏洞,文件名本身也可以)检查用户的凭据和访问权限到后面代码中的文件,然后用文件的内容覆盖输出(因此在服务器端加载)。

这样,客户端根本不需要访问机密文件夹,所有通信都通过您的网页和您的凭据检查算法进行。即使他们从某人那里获得了有效链接并且他们无权访问它,他们也会收到一个请求被拒绝屏幕(或您选择编码的任何内容)。

于 2012-05-03T17:01:30.307 回答