2012-03-19 14 views
0

私はVB.Netで2つの大きなMSSQLデータベースと頻繁にやり取りするプログラムを作成しています。私は1トンのVBを知らないし、かなり新しいですが、コードの接続文字列を持っていて、プログラムをリリースすれば誰かがプログラムを逆にして接続情報を取得するのは簡単でしょうか?私が間違っていれば私を修正してください。VB.NetでSQL接続文字列を使用する最も安全な方法

私の質問では、プログラムで接続文字列を使用する方が安全な方法があるかどうか疑問です。私はちょうど私のアプリを暗号化する必要がありますか?モジュールまたはDLLを作成しますか?

+2

このコメント読みください:http://stackoverflow.com/questions/9727089/what-is-a-simple-but-somewhat-effective-way-to-obfuscate-numeric-values#comment12369072_9727089を – asawyer

答えて

2

センシティブマテリアルを含む.configファイルの部分だけを暗号化できます。この場合は接続文字列です。場所は、お使いのシステムと.NETのバージョンによって異なる場合がありますが、ファイルの検索がそれを絞る必要がある

ASPNET_REGIIS.EXE

答えがあります。

myappというプログラムがc:\ dotnetaps \ myappにあるとします。

私はweb.configファイルの「のconnectionStrings」の部分を暗号化するために、次のコマンドを使用します。

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -pef connectionStrings C:\dotnetapps\myapp 

はちょっと待って:web.configファイルを右、唯一のWebアプリケーションではなく、ローカルなもののためにあるのですか? aspnet_regiis.exeはweb.configのみで動作しますが、の形式はapp.configとまったく同じです。したがって、app.configの名前をweb.configに変更し、ツールを実行して名前を変更し直すだけです。やや厄介ですが、バッチファイルでは自動化できないものはありません。

@ Encrypts connectionStrings in app.config 
ren C:\dotnetapps\myapp\app.config web.config 
path\to\exe\aspnet_regiis.exe -pef connectionStrings C:\dotnetapps\myapp 
ren web.config app.config 

重要な注意:文字通りこれらのコマンドを使用すると、それが実行されている特定のシステムに対してファイルを暗号化します。コードを配布するための鍵を暗号化するには少し読んでみたいですが、これは一般的な考え方です。

+0

私は現在ないですASP.Netを使用します。私はVisual Basic .NETベースの環境プログラムを作成しています。 –

+0

私の知る限りでは、それは重要ではありません。実行可能ファイルを入手するだけです。恐らくIIS Expressなどをインストールしてください。 Visual StudioやIISのプログラムにaspnet_regiis.exeが含まれているかどうかはわかりませんが、他のツールと同じように別のインストールと考えることができます。あなたのプログラムではまだ動作するはずです。あなたは接続文字列をapp.configに置くだけで済みます。次の例を参照してください。http://www.dreamincode.net/code/snippet1145.htm –

関連する問題