2009-03-12 8 views

答えて

-2

私が間違っていない限り、IISはWeb.Configファイルを提供しません。人々がウェブからそれを取り下げることを心配しているなら、私はあなたがこのファイルをApacheが提供するのをブロックすることができると確信しています。

ローカルのセキュリティについて話しているなら、これを行うには「良い」方法はないと思います。 Web.Configにパスワードがあるとします。これを適切に暗号化する唯一の方法は、ファイルを復号化するために別のパスワードを要求することです。したがって、本質的には、私はあなたがプログラムでアクセスする必要があるので、Web.Configからソースコードまたは別の外部ファイルにパスワードを格納する場所を移動するだけで、実際には何も得られません。復号化にパスワードを必要としない他のすべての暗号化方法は、ファイルをあいまいにしますが、あいまいではありません。

パスワードをローカルに保存しているPidgin(以前のgaim)の記事を読むhttp://developer.pidgin.im/wiki/PlainTextPasswordsさらに、this暗号化キーに関するウィキペディアの記事が役に立つかもしれません。両方とも、security through obscurityの固有の制限を論じている。

ファイルをローカルにロックする場合は、ユーザーアカウントベースのセキュリティを使用してファイルへの読み取り/書き込みアクセスを制限します。

+0

私はむしろ、機密データが設定ファイルにクリアテキストではなく、暗号化するだろう。 – CSharpAtl

+0

そうですが、私が言っていることは、アプリケーションを実行するたびにパスワードを手動で入力する必要がなければ、本当に暗号化していないということです。 –

+0

私はウェブユーザーのためにそれを暗号化していません、私はボックスに誰かが私がファイルに持っているデータを見る/操作することを望みません。 – CSharpAtl

0
あなたは、プログラムでのConfigurationSectionオブジェクトを取得し、その上にSectionInformation.ProtecteSection(「DataProtectionConfigurationProvider」)を呼び出すためにSystem.Configuration.ConfigurationManagerを使ってこれを行うことができます

/// <summary> 
    /// Encrypts a Config section from the given Configuration object 
    /// </summary> 
    /// <param name="sectionKey">Path to the section to Encrypt</param> 
    /// <param name="config">Configuration</param> 
    public static void EncryptConfigSection(String sectionKey, Configuration config) 
    { 
     ConfigurationSection section = config.GetSection(sectionKey); 
     if (section != null) 
     { 
      if (!section.SectionInformation.IsProtected) 
      { 
       if (!section.ElementInformation.IsLocked) 
       { 
        section.SectionInformation.ProtectSection("DataProtectionConfigurationProvider"); 
        section.SectionInformation.ForceSave = true; 
        config.Save(ConfigurationSaveMode.Full); 
       } 
      } 
     } 
    } 

Web設定のためには、システムを使用する必要があります.Web.Configuration.WebConfigurationManagerを使用して、上記の関数に渡すことができるConfigurationオブジェクトを取得します。 web.configファイルでは、特定のセクションのみが暗号化可能であることに注意してください。

設定がAppSettingsに保存されている場合、サーバー上で実行すると、設定の名前がわかっている場合は、設定のプレーンテキスト値を取得できるという単純なアプリケーションを誰でも書くことができます。

は単にのAppSettingsセクションを暗号化するための代替案のジョン・ギャロウェイ次の記事をチェックアウト:http://weblogs.asp.net/jgalloway/archive/2008/04/13/encrypting-passwords-in-a-net-app-config-file.aspx

+0

@Alexandre-Domingosからコメント: このコメントの時点で、 'DataProtectionConfigurationProvider'はMonoでサポートされていないと言いたいので、' ProtectSection'メソッドの代わりに 'RSAProtectedConfigurationProvider'を使うべきです。 – AlBlue

関連する問題