로그에 표시되지 않아야하는 항목 (응용 프로그램 추적)에 대한 회사 지침을 작성하려고합니다. 실제로 일부 개발자는 가능한 한 많은 정보를 추적에 포함 시키려고 시도하여 로그를 저장하는 것이 위험하고 로그를 제출하는 것은 매우 위험합니다 . 특히 고객이이 정보가 저장되어 있다는 사실을 고객이 알지 못하는 경우에는 설명서 및 / 또는 경고 메시지를 읽지 마십시오.
예를 들어, 파일을 처리 할 때 일부 개발자는 파일 이름 을 추적하려고 합니다 . 예를 들어 디렉토리에 파일 이름을 추가하기 전에 오류가 발생한 모든 것을 추적하면 추가 된 이름이 너무 길고 코드의 버그가 파일의 길이를 잊어 버린 것을 쉽게 알 수 있습니다 연결된 문자열. 도움 이 되긴하지만 민감한 데이터이므로 로그에 표시되지 않아야합니다 .
같은 방법으로:
- 암호 ,
- IP 주소 및 네트워크 정보 (MAC 주소, 호스트 이름 등) ¹,
- 데이터베이스 액세스
- 사용자 및 저장된 비즈니스 데이터 에서 직접 입력
추적에 나타나지 않아야합니다.
그렇다면 로그에서 다른 유형의 정보를 제거해야합니까? 사용할 수있는 지침이 이미 있습니까?
¹ 분명히 IIS 또는 Apache 로그와 같은 것은 아닙니다. 내가 말하고있는 것은 신뢰할 수없는 엔터티의 활동을 추적하지 않고 응용 프로그램 자체를 디버깅하려는 유일한 의도로 수집되는 정보입니다.
편집 : 귀하의 답변과 의견에 감사드립니다. 내 질문이 너무 정확하지 않기 때문에 의견에 묻는 질문에 대답하려고합니다.
- 로그로 무엇을하고 있습니까?
응용 프로그램의 로그는 메모리에 저장 될 수 있습니다. 즉, 로컬 호스트의 하드 디스크, 데이터베이스, 다시 일반 또는 Windows 이벤트에 저장됩니다. 모든 경우에있어 우려는 그러한 출처가 충분히 안전하지 않을 수 있다는 것입니다. 예를 들어, 고객이 응용 프로그램을 실행하고이 응용 프로그램이 임시 디렉토리에 일반 텍스트 파일로 로그를 저장하면 PC에 실제로 액세스 할 수있는 모든 사용자가 해당 로그를 읽을 수 있습니다.
응용 프로그램의 로그는 인터넷을 통해 전송 될 수도 있습니다. 예를 들어 고객이 응용 프로그램에 문제가있는 경우이 응용 프로그램을 전체 추적 모드로 실행하고 로그 파일을 보내도록 요청할 수 있습니다. 또한 일부 응용 프로그램은 충돌 보고서를 자동으로 당사에 전송합니다 (민감한 데이터에 대한 경고가 있어도 대부분의 경우 고객은 읽지 않습니다).
- 특정 분야에 대해 이야기하고 있습니까?
아니요. 저는 일반 비즈니스 응용 프로그램에서만 작업하므로 중요한 데이터는 비즈니스 데이터뿐입니다. 건강 또는 특정 규정이 적용되는 다른 분야와 관련된 것은 없습니다. 그러나 그것에 대해 이야기 해 주셔서 감사합니다. 가이드 라인에 포함시킬 수있는 내용에 대한 단서를 찾기 위해 해당 필드를 살펴보아야 할 것입니다.
- 데이터를 암호화하는 것이 쉽지 않습니까?
아니요. 특히 C # 진단 및를 사용하려는 경우 모든 응용 프로그램을 훨씬 더 어렵게 만듭니다 TraceSource
. 또한 가장 쉬운 방법은 아니지만 권한 부여를 관리해야합니다. 마지막으로 고객이 제출 한 로그에 대해 이야기하는 경우 민감한 데이터에 액세스하지 않고도 로그를 읽을 수 있어야합니다. 따라서 기술적으로 중요한 정보를 전혀 로그에 포함하지 않고 해당 로그가 저장되는 방법과 위치에 신경 쓰지 않는 것이 더 쉽습니다.
debug
가 아니라에, 파일 이름info
파일 이름.