1

SQL Compact DB を暗号化する方法は、接続文字列でパスワードを指定するだけの簡単な方法であると教えてくれるリソースをいくつか見つけました。しかし、そのパスワードを自分の web.config ファイルに残すのは気が進まないのです。実行時に DbContext の接続文字列を動的に指定できることはわかっていますが、それでも接続文字列にプレーン テキストのパスワードを含めています。このパスワードが脆弱なコード内のポイントを最小限に抑えるにはどうすればよいですか?

4

2 に答える 2

1

明らかに、ホスティング会社がサーバーにアクセスできる場合、勝つことはできません. 彼らが本当に望んでいるのであれば、彼らがパスワードを知るのを防ぐことはできません。

したがって、できることはパスワードを難読化することだけです。良いトレードオフは、次のようにソースコードにパスワードをハードコーディングすることだと思います:

var plainPassword = Enconding.UTF8.GetString(Convert.FromBase64("encoded-pw-here"))

保護する必要があるのは、単純な文字列検索などからです。これ以上のことはできないし、するべきではないと思います。

于 2012-10-06T11:34:39.730 に答える
0

サーバーでパスワードを取得することを恐れるのはなぜですか? ほとんどのシステム (database.yml ファイル内の Rails など) は、接続をどこかに保存します。

しかし、それを保護するためにできることは、接続を保持する encryption.dat ファイルを作成することです。web.config ファイルに接続の「名前」を配置するだけで、接続文字列を暗号化/復号化して実行時に配置できるクラスが必要になります。

ここにあるサンプル プロジェクト: http://www.codeproject.com/Articles/14150/Encrypt-and-Decrypt-Data-with-C

しかし、これで 100% のセキュリティが得られるわけではなく、努力する価値があるとは思えません。誰も許可なくアクセスできないように、Windows セーバーが正しく保護されていることを確認してください。

于 2012-10-06T08:50:17.830 に答える