0

客户端计算机无权访问 SQL Server 端口,并且无法向客户端计算机打开端口。

场景:我们有一个完全用 javascript 编写的旧客户端应用程序。javascript 包含一个明文连接字符串,包括一个 sql server 帐户用户名和密码。我们还使用 ASP.NET 来托管其他应用程序。

我们希望无需重写整个 javascript 应用程序即可将连接移动到服务器。

有没有办法只用服务器端连接替换 .js 文件中的连接,而不必为 .js 文件中的每个数据函数编写 AJAX(或类似的东西)调用?

以下是在 SQL Server 端口更改之前客户端用于连接的方式:

var conn_str = "DRIVER=SQL SERVER;SERVER=MyServer;DATABASE=MyDb;UID=sqluser;PWD=mypassword;";

function openConn() {
    //alert("openConn() ");
    this.conn = getAdoDb("ADODB.Connection");
    conn.ConnectionTimeout = 240;
    conn.CommandTimeout = 240;
    conn.open(conn_str, "", "");
    //alert("Current Connection String: " + conn_str);}

上面的代码在一个包含数千行代码的 javascript 文件中。我们想简单地用 ASPX 页面或 AJAX 或 .js 文件可能使用的东西替换 javascript 的这个连接部分。

4

1 回答 1

0

有没有办法只用服务器端连接替换 .js 文件中的连接,而不必为 .js 文件中的每个数据函数编写 AJAX(或类似的东西)调用?

如果您打算使用服务器端技术,AJAX 只是一种选择。您可以将调整后的数据嵌入到页面中以供 javascript 使用(即,将 JSON 输出到页面)等。

您可以创建一个通用的服务器端数据函数,该函数将接受 SQL 和参数,但需要验证传入的查询和参数以避免 SQL 注入和篡改。

在我看来,替换所有数据函数没有安全的方法。

于 2012-04-04T11:17:04.613 回答