3

アプリケーションの作成と構築が完了しました。そして、すべてが正常に機能しています。

次に、フォルダー内にXML構成ファイルがあることに気付いたので、それをクリックします。

そして、そこに、私のリモートSQLサーバーのIPアドレス、ログインユーザー名、ログインパスワードとともに、接続文字列全体が表示されます。

XML構成ファイルを削除してプログラムを実行しましたが、デフォルトのデータベースを使用してフォルダー内にApp_Dataフォルダーが作成されます。

すべての接続情報が含まれているため、XML構成ファイルを非表示にしたり読み取り不能にしたりする方法はありますか?

ありがとう。

4

4 に答える 4

3

接続文字列の保護に関するこのMSの記事を確認してください。

https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/protecting-connection-information

または、接続文字列をアプリケーションにハードコーディングするか(注:悪意のあるユーザーは.netアプリをかなり簡単にリバースエンジニアリングできます)、可能であれば統合セキュリティを使用します。

于 2012-05-17T21:55:58.077 に答える
1

あなたはそれを暗号化することができます:http://chiragrdarji.wordpress.com/2008/08/11/how-to-encrypt-connection-string-in-webconfig/

または、可能であれば統合セキュリティを使用します。

于 2012-05-17T21:54:33.813 に答える
1

接続文字列を非表示にしようとすると、あなたと攻撃者の両方がアクセスするのが少し難しくなります。これは珍しいことではありませんが、あまり安全ではありません。また、定期的なパスワードローテーションの確保にも問題があります。

可能であれば、統合セキュリティに切り替えてください。(Integrated Security=SSPI接続文字列に含めますが、ユーザー名やパスワードは含めません。)接続は、自分のユーザーアカウント(またはコードを実行しているアカウント)を使用して作成されます。

  • MSSQLServerを使用しています
  • SQL Serverは同じシステム上、または同じADドメイン内にあるため、アカウントを認識できます。
于 2012-05-17T21:56:15.943 に答える
1

専用のデバッガーは、何をしても接続文字列をほとんど見ることができます。

デバッグセッションで確認できるかどうかを覚えておいてくださいConnection.ConnectionString。WinDBGまたはVisualStudioを使用しているユーザーも確認できます。したがって、ファイルを暗号化した場合でも、ユーザーは復号化してクリアテキスト値を検査することができます。

これが、サーバーからの情報を必要とする多くのクライアントアプリケーション(特にモバイルアプリケーション)が通常、データベースに直接接続しない理由です。代わりに、通常は代わりにサービスに接続します。次に、サービスに対してユーザーを承認および認証します。

于 2012-05-17T22:22:23.023 に答える