【问题标题】:Classic ASP centralized Database credentials经典 ASP 集中式数据库凭据
【发布时间】:2017-12-21 05:14:28
【问题描述】:

我们当前的 Web 应用程序是使用 Classic ASP 构建的。源代码中的大多数 asp 页面都有硬编码的数据库用户名和密码。现在我们需要将它们集中起来并访问该功能以进行数据库连接。

我们正在使用

  db = CreateObject("adodb.connection")
  db.open connectionString, username, password

我的问题是 1. 我可以使用注册表来存储和访问经典 ASP 中的用户名和密码(加密)吗?没有任何第三方库是否可能? 2.我们能否在一个dll中实现读取用户名和密码功能,并在我的asp页面中使用该功能。 3.有没有其他方法可以处理这个问题?

注意,不要将用户名和密码存储在平面文件中

【问题讨论】:

标签: asp-classic


【解决方案1】:

您可以集中连接字符串,只需将凭据存储在连接字符串中并将连接字符串存储在应用程序变量中。

我已经回答了一个非常相似的问题here

您不需要使用连接字符串、用户名和密码打开连接,您可以将用户名和密码嵌入到连接字符串中。下面是一个 SQL 服务器连接字符串的示例:

connectionString = "Provider=SQLOLEDB; Data Source=YOUR_DATABASE_SERVER; Initial Catalog=YOUR_DATABASE; User ID=YOUR_USERNAME; Password=YOUR_PASSWORD"

【讨论】:

  • 谢谢。我的问题是 'connectionString = "Provider=SQLOLEDB; Data Source=YOUR_DATABASE_SERVER; Initial Catalog=YOUR_DATABASE; User ID=YOUR_USERNAME; Password=YOUR_PASSWORD"' 数据库服务器名称、用户 ID 和密码仍然必须以纯文本形式提及在 global.asa / config 文件等中......这对登录机器的人(管理员帐户除外)清晰可见。我正在寻找在 dll 中完成数据库连接打开并从经典 asp 代码中调用该函数的东西......这可能吗?
  • 可以在 VB6 中编写 COM DLL 或在 .NET 中编写带有 COM 包装器的 DLL,您可以从 ASP 中调用。事实上,在我公司我们自己也这样做过,而且效果很好,但是,如果您需要更改数据库或服务器,则需要重新编译,所以这不是很友好。您可能想尝试@Jon P 的建议,并在您的服务器webcheatsheet.com/asp/dsn.php 上创建一个系统DSN。我不确定您是否可以保护 DSN 或数据源工具,但这样文本文件中将没有凭据。用户名/密码存储在 DSN 中,ASP 可以通过名称调用 DSN。
  • 我尝试了 [link]webcheatsheet.com/asp/dsn.php 中提到的程序。在 SystemDSN 下为 SQL Server 创建了一个 DSN 名称。在我的经典 ASP 代码中,我调用了相同的代码,然后弹出错误“0x80040e4d - Microsoft OLE DB Provider for ODBC Drivers: [Microsoft][SQL Server Native Client 10.0][SQL Server]用户登录失败” . 我应该怎么做,因为我不想在 ASP 文件中硬编码密码。
  • 嗯,该消息表明您的 DSN 连接配置不正确。看看这里:stoneedge.com/help/mergedProjects/3rdparty/… 还有一个“测试连接...”按钮,您可以使用它来检查您的 DSN 连接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多