【问题标题】:Where to store connection string for classic ASP?在哪里存储经典 ASP 的连接字符串?
【发布时间】:2010-02-26 04:11:56
【问题描述】:

在 ASP.NET 中,我可以在 web.config 中存储连接字符串,就像我需要在经典 ASP 的某个文件中存储连接字符串或一些配置值一样。

我该怎么做?为了实现这一点,我需要使用 XML 文件并将连接字符串存储在其中吗?

什么是最佳实践???

【问题讨论】:

    标签: asp-classic


    【解决方案1】:

    使用globa.asa 在应用程序对象中设置一个值。

    【讨论】:

    • 这在一个应用程序中有效,但在整个企业中无效(假设有多个应用程序)
    • 配置通常基于每个应用程序(包括 asp.net web.config)。在安全方面,每个应用程序使用不同的数据库用户帐户也是最佳做法。
    • 如果我的每个客户都有一个连接字符串?他们每个人都访问一个 Azure SQL 数据库。
    【解决方案2】:

    您可以创建一个 ASP 文件,其中包含作为字符串变量的连接字符串以及任何其他配置信息,然后将其包含在连接到数据库的文件中。

    【讨论】:

    • 这应该是 .inc 文件还是 .asp 文件?
    • 将其设为 .asp 文件。在遥远的过去,我看到一个服务器配置为 .inc 文件不被 asp 运行时解释,导致服务器下载 .inc 文件的源。 .asp 文件发生这种情况的可能性要小得多。
    • @Nimesh 和 @Paul,正如 Joost 在他的回答中所建议的那样,使用 global.asa 似乎是更好的解决方案。所有页面都可以访问它,而无需包含任何内容......
    【解决方案3】:

    我最近捡到的一句话……

    不要做一些像商店这样的傻事 文件中的秘密 Web 服务器上的虚拟目录 (想到 web.config)。网络 服务器已经知道 不小心允许文件 因为bug下载了。为了 例如,经典中的连接字符串 过去 ASP 页面可能被盗 通过将 Web 浏览器指向 'page.asp::$DATA' 而不是 页面.asp。这欺骗了 IIS 认为请求是针对 静态文件,因为 .asp::$DATA 不会匹配其脚本中的任何内容 地图。但是后缀 ::$DATA 有 对操作的特殊意义 system:表示默认的NTFS 文件的流,这就是你的 阅读内容时得到 正常归档。换句话说,问 page.aspx::$DATA 的文件系统 与要求它相同 page.aspx 的内容。因此 IIS 将 提供 ASP 页面的源代码 而不是将其解释为 脚本。已经有很多 这么多年的恶作剧, 但大多数人会同意你是 最好存储敏感文件 在任何虚拟目录之外 网络服务器。更好的是,保持 不同的敏感文件 分区然后你的虚拟 目录驻留。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多