【问题标题】:SQLite with IIS带有 IIS 的 SQLite
【发布时间】:2012-06-06 08:24:32
【问题描述】:

我想将 SQLite 与 .net 应用程序一起使用。只有当 DLL 和数据库文件在 BIn 文件夹中并且 BIN 的权限设置为读/写时,它才有效。 这是安全风险吗?

【问题讨论】:

  • 您是指通过您的应用程序施加的限制吗?因为 SQLite 绝对不会施加这种限制。

标签: asp.net .net sqlite iis-7


【解决方案1】:

是的,这是一个安全风险,而且,每次更新 Bin 文件夹中的文件时,都会导致您的应用程序重新启动。所以你把数据库文件放在 App_Data 文件夹中。

【讨论】:

  • IIS 是否对它无法加载的文件类型(例如,不是 DLL 和 web.config)有一个文件监视程序?
  • OP 声称它必须在 BIN 文件夹中,尽管我同意 Michael P 的评论,即 OP 可能被误导了。 App_Data 确实是合适的位置。
  • 是的,这就是我的 SQLite 数据库所在的位置,我的 .NET 应用程序可以正常与之通信。
  • 我真正想做的是制作一个用户可以放在他们的服务器上并且不需要访问任何其他数据库即 mySQL、SQL 等的应用程序。
【解决方案2】:

是的,允许 IIS 工作进程对 bin 文件夹的读/写权限将允许任何可以对您的系统获得足够权限的人(以运行 IIS 的通常低权限帐户运行)现在可以更改您的应用程序二进制文件。

如果确实 SqLite 提出了这个要求(但我倾向于同意 Michael P 的评论),我不会在 IIS 下使用它。您是否应该使用它取决于您希望您的应用程序面临的安全风险以及安全漏洞的成本(管理您的邮票收藏与管理信用卡数据)。

我确实怀疑 Sqlite 将允许您将数据文件放在 App_Data 中,这些数据所属的位置。事实上,以下问题的答案概述了如何做到这一点:

How do I reference the Sqlite db file in the App_Data folder for my ASP.NET Web Application?

【讨论】:

    【解决方案3】:

    仅当 DLL 和数据库文件在 BIn 文件夹中时才有效

    嗯,这听起来像是一个拦截器。有一个免费的商业许可 Microsoft SQL Server CE。它完美而安全地融入 ASP.NET。以 DLL 形式运行,单个文件中的数据库最大 4GB。限制是文件大小和没有存储过程功能。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-22
    • 2015-06-22
    • 1970-01-01
    • 2023-03-05
    • 2011-02-11
    • 2010-09-24
    • 2022-11-27
    • 1970-01-01
    相关资源
    最近更新 更多