3

ASP.NETとサードパーティのAPIに関するチュートリアルを読んでいたところ、APIKEYとSECRETKEYは、それらを使用するクラスではなく、運用サーバーのセキュリティのためにweb.configファイルに保存する必要があるとのことでした。ただし、web.configファイルの安全性がクラスよりも安全かどうかはよくわかりません。設定ファイルに保存することの便利さは理解していますが、セキュリティ上の利点がわかりませんか?

4

4 に答える 4

6

手始めに、web.configでAPIキーをすばやく更新できます。クラスを再コンパイルして、クラスを再デプロイする必要があります。

asp.net2.0以降のweb.configセクションのセクションを暗号化することもできます

http://weblogs.asp.net/scottgu/archive/2006/01/09/434893.aspx

それをmachine.configに保持できる場合は、そのマシン上にのみ存在し、他の場所には存在しないことが保証されます。Web.Configはすべての環境に配置する必要があり、web.configはマシンごとに異なる状態に保つことができますが、すべての同期を維持する必要があるため、時間の経過とともに困難になります。

于 2010-04-16T17:48:16.460 に答える
1

web.configの選択した部分を暗号化できます。

これを行うための非常に簡単な方法に関するブログエントリがあります。

http://odetocode.com/blogs/scott/archive/2006/01/08/encrypting-custom-configuration-sections.aspx

于 2010-04-16T17:49:46.783 に答える
1

サーバー上のweb.configにのみ存在する場合、すべての開発者のマシンにも存在するわけではありません。これにより、秘密が漏洩するリスクが軽減されるため、より安全になります。

于 2010-04-16T17:50:59.527 に答える
0

セキュリティ上のメリットはありません。これらの値が変更された場合に、これらの値を使用するクラスを再コンパイルする必要がないという便利な利点があります。

セキュリティの観点から、クラスは同じレベルのセキュリティを備えています。web.configおよびクラスファイル(App_Code内)またはコンパイル済みアセンブリ(binフォルダー内)はダウンロードできません(これらのディレクトリは、ユーザーがダウンロードできる仮想ディレクトリにマップされていません)。

ただし、それらが取得された場合、どちらにも実際にはセキュリティはありません。web.configファイルは簡単に読み取ることができ、Reflectorなどのツールを使用すると、コンパイルされたアセンブリにある定数を簡単に確認できます。

コンパイルされたアセンブリに対するweb.configの唯一の利点は、Scott Guthrieがブログで指摘しているように、web.configファイルのセクションを暗号化できることです。

于 2010-04-16T17:50:49.007 に答える