【问题标题】:how to protect uploaded documents from direct access in web forms如何保护上传的文档不被 Web 表单直接访问
【发布时间】:2015-07-18 15:46:29
【问题描述】:

我有一个允许用户上传文档的 c#.net 应用程序。然后扫描文档中的恶意软件并保存。这些文档保存在共享文件和上传文件夹中。共享文件位于单独服务器上的 Intranet 上。 uploads 文件夹与应用程序位于同一目录中,但不是应用程序的一部分。主机服务器正在运行 iis 7,但目录列表已关闭。

问题在于,如果外部用户能够猜出命名约定和文件名,他们可以将其输入浏览器并查看文档。

应用程序在用户帐户下运行。我们尝试将上传文件夹的权限设置为只允许应用程序用户帐户访问,但没有成功。

我还尝试将网络配置添加到文件夹:

<?xml version="1.0"?>
<configuration>
    <system.web>
      <authorization>
        <allow users="application_user_account" />
        <deny users="?" />
      </authorization>
    </system.web>
</configuration>

这在放置在上传文件夹中时不起作用,但是当它意外放置在上一级文件夹中时,服务器拒绝所有用户访问环境中托管的所有应用程序。

在这种情况下,有没有人有防止直接访问上传文件夹的解决方案?

【问题讨论】:

    标签: asp.net security iis-7


    【解决方案1】:

    您可能需要查看&lt;location&gt; 节点:Click Here

       <location path="Logon.aspx">
         <system.web>
           <authorization>
            <allow users="?"/>
           </authorization>
        </system.web>
      </location>
    

    这似乎与以下内容重复:How to restrict folder access in asp.net

    【讨论】:

      【解决方案2】:

      将上传文件夹移动到App_Data

      例如~/App_Data/Uploads

      App_Data 是一个无法从网络读取的特殊文件夹。

      任何导航到example.com/App_Data/Uploads/Foo.docx 的尝试都将导致授权错误。例如一个HTTP 403 Forbidden HTTP 响应..

      【讨论】:

      • 我今天一直在尝试实施这个解决方案。我发现这篇关于使用 App_Data 文件夹的文章:codeproject.com/Articles/31557/… 我是否需要设置一个进入 App_Data 文件夹的数据库文件,然后我可以将文件插入其中?最初我遇到拒绝访问错误,但在调整路径后,我能够通过应用程序而不会抛出错误,但是文件没有登陆我的 App_Data 文件夹,并且没有在服务器上创建包含这些的 App_Data 文件夹文件。
      猜你喜欢
      • 2017-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多