ログ(アプリケーションのトレース)に表示してはならないものについて、会社のガイドラインを作成しようとしています。実際には、一部の開発者は、トレース内のできるだけ多くの情報として含めるようにしようと、それは危険なこれらのログを保存すること、およびそれらを提出する非常に危険な彼女は、この気にしませんので、お客様は、この情報が格納されている知っていない場合は特に、ドキュメントや警告メッセージを決して読んでいない。
たとえば、ファイルを処理する場合、一部の開発者はファイルの名前をトレースしたいと思われます。たとえば、ファイル名をディレクトリに追加する前に、エラー時にすべてをトレースすると、たとえば、追加された名前が長すぎること、およびコードのバグが連結された文字列。これは役立ちますが、これは機密データであり、決してログに表示してはいけません。
同じやり方で:
- パスワード、
- IPアドレスとネットワーク情報(MACアドレス、ホスト名など)¹、
- データベースアクセス、
- ユーザーおよび保存されたビジネスデータからの直接入力
トレースに表示されることはありません。
それでは、他にどんな種類の情報をログから追放する必要があるのでしょうか?私が使用できるガイドラインはすでに書かれていますか?
¹明らかに、私はIISやApacheのログなどについて話をしているのではありません。私が話しているのは、信頼されていないエンティティのアクティビティを追跡するのではなく、アプリケーション自体をデバッグすることだけを目的として収集される情報です。
編集:回答とコメントをありがとう。私の質問はあまり正確ではないので、コメントで尋ねられた質問に答えようとします。
- ログで何をしているのですか?
アプリケーションのログはメモリに保存される場合があります。つまり、ローカルホストのハードディスクにプレーンで、データベースに、プレーンに、またはWindowsイベントに保存されます。すべての場合において、懸念はそれらのソースが十分に安全でないかもしれないということです。たとえば、顧客がアプリケーションを実行し、このアプリケーションがログを一時ディレクトリのプレーンテキストファイルに保存すると、PCに物理的にアクセスできる人は誰でもそれらのログを読むことができます。
アプリケーションのログはインターネット経由でも送信できます。たとえば、顧客がアプリケーションに問題がある場合、このアプリケーションをフルトレースモードで実行し、ログファイルを送信するように依頼できます。また、一部のアプリケーションは、クラッシュレポートを自動的に送信する場合があります(そして、機密データに関する警告がある場合でも、ほとんどの場合、顧客はそれらを読みません)。
- 特定の分野について話していますか?
いいえ。一般的なビジネスアプリケーションのみに取り組んでいるので、機密データはビジネスデータのみです。特定の規制の対象となる健康やその他の分野に関連するものはありません。しかし、それについてお話しいただきありがとうございます。おそらく、ガイドラインに含めることができるものについての手がかりを得るために、これらのフィールドを見てみる必要があります。
- データを暗号化する方が簡単ではありませんか?
いいえ。特にC#診断とを使用する場合は、すべてのアプリケーションが非常に難しくなりTraceSource
ます。また、承認を管理する必要がありますが、これは最も簡単なことではありません。最後に、顧客から提出されたログについて話している場合、機密データにアクセスすることなく、ログを読み取ることができる必要があります。したがって、技術的には、機密情報をログに一切含めず、それらのログがどのように、どこに保存されているかを気にすることは簡単です。
debug
、ファイル名では問題ありませんが、ファイル名では問題ないかもしれませんinfo
。