ASP.NET中APP_Data文件夹的安全性

3
我的Microsoft Access数据库文件存放在APP_DATA文件夹中。我的服务器是Windows 2003,我想知道如何最好地保护这个文件。
那么哪一个更安全呢?
./wwwroot/App_data/Database.mdb
还是
./db/Database.mdb?
2个回答

6

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

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

任何使用type=HttpForbiddenHandler添加的文件类型都不会被提供服务。
将Access文件放在哪里是品味和访问权限的问题。如果将其放在站点外部,即db文件夹中,您将需要为您的站点/应用程序使用的应用程序帐户设置权限。将其放置在App_Data文件夹中即可。此外,如果您在托管环境中,则可能无法将Access文件放在站点文件夹之外。
我的建议是:选择App_Data文件夹。
.håkan

0

如果将mdb文件放在App_Data文件夹中,访问者无法下载该文件。 但是,如果将mdb文件放在db文件夹中,访问者可以下载该文件。

如果您想将mdb文件放在db文件夹中,您必须为该文件夹设置安全权限。


db文件夹不在wwwroot目录下,所以我认为他们无法下载它。 - Reza
是的,你说得对...抱歉。来自MSDN: App_Data文件夹包含存储在本地文件中的Microsoft Access数据库(.mdb文件)、XML文件和其他数据。用于运行应用程序的用户帐户(例如,本地ASPNET帐户)具有读取、写入和创建此文件夹中文件的权限。各种ASP.NET应用程序功能(例如成员身份验证和角色提供程序以及Web站点管理工具)都配置为专门使用App_Data文件夹。 http://msdn.microsoft.com/en-us/library/f7fb46ye(v=vs.80).aspx - ogun
我认为我需要将以下内容添加到web.config文件中:<add path="*.mdf" verb="*" type="System.Web.HttpForbiddenHandler" validate="true" /> - Reza

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接