2009-08-11 126 views

答えて

7

ログの出力を暗号化したいとします。その場合、暗号化を処理できる独自のAppenderを作成する必要があります。暗号化なしで使用する出力メカニズム(FileAppender、EventLogAppenderなど)を把握し、そのAppenderを拡張し、実際に出力を書き出す機能を無効にすることをおすすめします。

アペンダーに関する参考資料はhereです。

たとえば、FileAppenderをEncryptedFileAppenderで拡張し、ファイル書き込みにフックするために必要なメンバーをオーバーライド/実装します。

また、IAppenderから拡張し、アペンダを最初から完全に作成することもできます。それはあなたにもっとコントロールを与えるでしょうが、ペイロードを暗号化しようとするならば、もっと多くの作業が必要になるかもしれません。

+0

あなたの良いヒントをありがとう。だから、あなたは私のログにジョブを実行するラッパーを実装して追加する前に、コンテンツを暗号化するほうがよいでしょう。その後、私のlogssの内容はlog4netに何も設定せずにすべて暗号化されますか? – paradisonoir

+0

実際に各行項目をログファイルに追加する場所にフックできるので、その行全体を暗号化することができます。これを達成したら、以前使用していたものの代わりにapp4を使用するようにlog4netを設定する必要があります。このケースでは、EncryptedFileAppender – Joseph

+0

@Josephは、ログの各行に対して暗号化することを提案していますか、別のファイルにロールオーバーすると(ログの最大サイズに達すると)ですか? – paradisonoir

2

ユーザーがウェブ上で閲覧できないようにする場合は、ログレコードを書き込むファイル名を、Webサイトで配信できない拡張子に変更することができます。この方法では、ユーザーはログファイルを推測してWeb上でアクセスすることはできません。

サーバー自体にログオンしているユーザーがファイルの内容を表示しないようにする場合は、特定の管理者グループのユーザーのみがコンテンツを表示できるように、アクセス許可制御を使用してファイルをロックダウンできます。

また、セキュリティ保護が必要なファイルがないようにデータベースにログオンすることもできます。

3

暗号化のサポートはありません。他の人がここに述べているように、あなたはそれを自分で実装する必要があります。

私はForwardingAppenderをサブクラス化して暗号化することをお勧めします。これは、基本的にあなたがアペンダーをあなたがディスクに実際の書き込みをするために選択する標準的なアペンダーのど真ん中に置くことを可能にします。

1

私はこの答えは、数年のオリジナルのポストの日付の後に来ることを実現しますが、同じ問題に直面した後、私はちょうどこの仕事をするためのオープンソースパッケージを作成することにしました:log4netのメッセージEncryptorは

ソースコードすることができますGitHub

にあり、パッケージはNuGet

+0

共有してくれてありがとう、私はnlogのための同様のソリューションを探していました。私は公開鍵/秘密鍵を使用してランダム鍵を暗号化して、対称鍵の代わりにセキュリティを向上させることを計画しました。誰でもログにアクセスできるため、app.configから鍵を取得できます。 – faulty

+1

うれしいです! 私の主な使用例は、データベースに格納されているログを中心に、または最初のサーバーから外しています。私の考えは、攻撃者がweb.configファイルにアクセスできるとすれば、ログを暗号化するのは無駄なことかもしれません! 私は実装をNLogに移植することも検討していましたが、人生は途方もないままでした。プロジェクトを作成してソースをオープンして管理しているなら、私が特に興味を持っていることを教えてください! –

+1

もう1つ言及しなければならないのは、web.configの暗号化キーセクションをAspnet_regiisで暗号化する必要があるということです。これは、キーがプレーンテキストではなく、やや安全性が高いことを意味します。 –

関連する問題