2016-04-07 13 views
0

ASP.NET MVCアプリケーションの他のパラメータ、つまりタイムアウト時間などとして、ユーザ名&のパスワードをweb.configファイルに保存するのは安全ですか?そうでない場合、公開されたサーバー上のweb.configファイルでこれらのパラメータをエンコードできないように、これらのパラメータを保護することは可能ですか?一方、ユーザ名&のパスワードと他の定数パラメータを静的な値としてクラス(* .cs)ファイルに保存することをお勧めしますか?このようなパラメータを保存するために、どのアプローチが優れているかを私に明確にしてください。機密情報(ユーザー名とパスワード)をweb.configに保存していますか?

+0

に(http://stackoverflow.com/questions/3349551/encrypting-app-config-file)[app.configファイルを暗号化する] – Steve

+0

。私は、アプリケーションが公開されているサーバーにアクセスできる人を「公開されたサーバー上のweb.configファイルにエンコードできません」という意味です。ですから、web.configオプションを使用すると、あなたが示唆したように暗号化を使用する必要があります。一方、クラスファイルオプションを使うことも良いようですが、大きなプロジェクトではないリソースプロジェクトを作成する必要はないと思います。その場合、web.configではなくすべてのパスワードまたはユーザーパラメータを保存するために、クラスファイル、つまりConstantを使用することをお勧めしますか? –

+0

本当にありません。 NETコードは簡単に逆コンパイルすることができます。また、ある種の難読化では、一定の文字列を隠すことは困難です。コードが実行されているコンピュータへのアクセスを物理的に禁止することができない場合は、本当に安全です。少なくとも遠く離れた場所にいる見守り人を引き付けるのに十分なほど強力な暗号化があります。すべてはどれくらい安全である必要があるかによって異なります。 – Steve

答えて

1

重要なデータは決してソースコードに保存しないでください。 configSource属性を使用して、<connectionStrings>マークアップ全体を置き換えることができます。

<connectionStrings configSource="ConnectionStrings.config"> 
</connectionStrings> 

ConnectionStrings.configは、Web.configと同じフォルダにある必要があります。設定ファイルはIISによって提供されないので、拡張子.configを保持することをお勧めします。 このファイルは、バージョン管理システムでは無視する必要があります。ご協力いただきありがとうござい@Steve

https://www.asp.net/identity/overview/features-api/best-practices-for-deploying-passwords-and-other-sensitive-data-to-aspnet-and-azure

関連する問題