セキュリティの観点から、Web アプリケーションで接続文字列を管理する最良の方法は何ですか? 私はそれをいくつかの異なる方法で行いました。それらをプレーンテキストの web.config 設定キーとして保存しました。また、接続文字列ごとにパブリックな読み取り専用文字列プロパティを持つ "定数" クラスも作成しました。
悪意を持って発見される心配がないように接続文字列を管理するための推奨事項はありますか? 私は間違いなく暗号化に対してオープンです。
セキュリティの観点から、Web アプリケーションで接続文字列を管理する最良の方法は何ですか? 私はそれをいくつかの異なる方法で行いました。それらをプレーンテキストの web.config 設定キーとして保存しました。また、接続文字列ごとにパブリックな読み取り専用文字列プロパティを持つ "定数" クラスも作成しました。
悪意を持って発見される心配がないように接続文字列を管理するための推奨事項はありますか? 私は間違いなく暗号化に対してオープンです。
web.config ファイルで接続文字列を暗号化できます。
接続文字列をプロパティまたは定数としてクラスに格納することは安全ではありません。逆アセンブラーを使用する人は誰でも接続文字列を見ることができます。
最善の方法は、構成の暗号化です。
サーバーを完全に制御できる場合は、接続文字列を Machine.Config に保存することもできます。これは、すべてが同じ DB サーバーで動作する多数のアプリケーションがある場合に便利です。
最初にサーバーにアクセスしてmachine.configを表示する必要があるため、暗号化する価値があるかどうかはわかりません。また、サーバーが侵害された場合、Encryption はハッカーが構成ファイルから資格情報を引き出すのを阻止しません。
コマンド ライン ツール aspnet_regiis を使用して、web.config のセクションを暗号化および復号化できます。
暗号化: aspnet_regiis -pef "connectionStrings" "c:\folder\"
復号化: aspnet_regiis -pdf "connectionStrings" "c:\folder\"
@vartec: SNAFU ではありません..
IIS は、UTF8 または Unicode エンコーディングを壊さない標準の .NET 暗号化メカニズムを使用して暗号化した場合、暗号化されたテキストを実際に読み取ることができます。Microsoft もこれをベスト プラクティスとして推奨しています。
これから接続文字列を暗号化するサンプルを見ることができます:
「方法: データ ソース コントロールの使用時に接続文字列をセキュリティで保護する」