0

クライアントマシンはSQLServerポートにアクセスできず、クライアントマシンへのポートを開くことはできません。

シナリオ:完全にjavascriptで記述された古いクライアントアプリケーションがあります。javascriptには、SQLサーバーアカウントのユーザー名とパスワードを含むクリアテキストの接続文字列が含まれています。また、ASP.NETを使用して他のアプリケーションをホストします。

javascriptアプリケーション全体を書き直さなくても、接続をサーバーに移動したいと考えていました。

.jsファイル内のすべてのデータ関数に対してAJAX(または同様のもの)呼び出しを記述せずに、.jsファイル内の接続をサーバー側接続に置き換える方法はありますか?

SQLServerポートが変更される前にクライアントが接続していた方法は次のとおりです。

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ファイルに含まれています。javascriptのこの接続部分を、ASPXページまたはAJAX上の何か、または.jsファイルによって消費される可能性のあるものに単純に置き換えたいと思います。

4

1 に答える 1

0

.jsファイル内のすべてのデータ関数に対してAJAX(または同様のもの)呼び出しを記述せずに、.jsファイル内の接続をサーバー側接続に置き換える方法はありますか?

サーバーサイドテクノロジーを使用する場合、AJAXは1つのオプションにすぎません。再調整されたデータをページに埋め込んで、JavaScriptで使用する(つまり、JSONをページに出力する)ことができます。

SQLとパラメーターを受け入れる汎用サーバー側データ関数を作成できますが、SQLインジェクションと改ざんを回避するために、渡されたクエリとパラメーターを検証する必要があります。

私の意見では、すべてのデータ関数を置き換えることを回避する安全な方法はありません。

于 2012-04-04T11:17:04.613 に答える