【问题标题】:Security of APP_Data Folder in ASP.NETASP.NET中APP_Data文件夹的安全性
【发布时间】:2011-06-05 04:36:18
【问题描述】:

我的 Microsoft Access DB 文件位于 APP_DATA 文件夹中。我的服务器是 Windows 2003,我想知道保护这个文件的最佳方法是什么。

那么哪个更安全?

./wwwroot/App_data/Database.mdb

./db/Database.mdb

【问题讨论】:

    标签: asp.net app-data


    【解决方案1】:

    如果 mdb 文件位于 App_Data 文件夹中,访问者无法下载您的 mdb 文件。 但是如果 db 文件夹中有 mdb 文件,访问者可以下载您的 mdb 文件。

    如果你想把你的 mdb 文件放在 db 文件夹中,你必须为这个文件夹设置安全权限。

    【讨论】:

    • db 文件夹不在 wwwroot 内,所以我认为他们无法下载。
    • 是的,你是对的......对不起。来自 MSDN:App_Data 文件夹 包含 Microsoft Access 数据库(.mdb 文件)、XML 文件和其他存储在本地文件中的数据。用于运行应用程序的用户帐户(例如,本地 ASPNET 帐户)有权在此文件夹中读取、写入和创建文件。各种 ASP.NET 应用程序功能,例如成员资格和角色的提供程序,以及网站管理工具,都被配置为专门与 App_Data 文件夹一起使用。 msdn.microsoft.com/en-us/library/f7fb46ye(v=vs.80).aspx
    • 我想我必须将它添加到 web.config
    【解决方案2】:

    这两种方法都是安全的,因为文件不会被提供给远程客户端(除非您创建 db 文件夹的虚拟路径。不是从站点提供的文件由 web.config 中的 httpHandlers 部分管理:

    <add path="*.mdb" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
    

    此处添加的任何带有 type=HttpForbiddenHandler 的文件类型都不会被提供。

    将 Access 文件放置在哪里是个人喜好和访问权限的问题。如果您将它放在您的站点之外,即在 db 文件夹中,您将必须为您用于站点/应用程序的应用程序帐户设置权限。将其放置在您准备使用的 App_Data 文件夹中。此外,如果您在托管环境中,您可能无法将您的 Access 文件放在站点文件夹之外。

    我的 2 美分:去 App_Data 文件夹。

    .håkan

    【讨论】:

      猜你喜欢
      • 2015-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-08
      • 1970-01-01
      • 1970-01-01
      • 2020-02-21
      相关资源
      最近更新 更多