日々様々なトラブルにハマっている、困ったシステム管理者の奮闘日記です。

Archive for 1月 27th, 2009

ASP.NETでのデータベース接続文字列の記述場所

火曜日, 1月 27th, 2009 Posted in ASP.NETでハマる | No Comments »

最近、仕事関連でASP.NET2.0をいぢってます。 システム管理者の目でいぢってて気がついたのですが、 ASP.NET2.0からデータベースの接続文字列を、Web.configの「connectionStrings」セクションに記述できるようになっているのですね。 で、MS SQL ServerなんかでWindows認証する場合以外は、接続文字列中にデータベースへの接続時のユーザ名とパスワードをweb.configファイル中に記述してしまうことになります。 具体例はこんな感じ。 <configuration> : <connectionStrings>  <add name="xxsystem"       providerName="system.data.mysqlclients"       connectionString="Database=xxsystem;Data Source=DBサーバ; User Id=ユーザ名;Password=パスワード"  /> </connectionStrings> ところが、このweb.configファイルはデフォルト平文なので、Webサーバのコンソールを扱う権限のある人であれば簡単にweb.configの設定情報を参照してデータベースの接続ユーザ名とパスワードを知ることができてしまいます。 これはセキュリティ上問題です。 この問題の回避策として、Microsoftから「aspnet_regiis」というツールが提供されているので、これを使ってweb.configの重要な部分を暗号化できるそうです。 参照元:知識.com様 http://www.e-chishiki.com/jpn/articles/information_security/application_security/cryptography/encrypting_web_config しかし、ここで問題点。 Read more..